您好,欢迎访问一九零五行业门户网

PHP 数组按多个字段排序实现代码

本文主要讲述了用php语言实现数组按多个字段排序问题,附上代码,有需要的朋友可以看一下。
题目:
一个二维数组,需要按照库存量排序,然后再按照门店距离排序。
发现了这样一个这样子的方法:
$array1 = array(      0=>array('id'=>8,'name'=>'apple','age'=> 18),      1=>array('id'=>8,'name'=>'bed','age'=>17),      2=>array('id'=>5,'name'=>'cos','age'=>16),      3=>array('id'=>5,'name'=>'cos','age'=>14));function sortarrbymanyfield(){  $args = func_get_args(); // 获取函数的参数的数组  if(empty($args)){    return null;  }  $arr = array_shift($args);  if(!is_array($arr)){    throw new exception(第一个参数不为数组);  }  foreach($args as $key => $field){    if(is_string($field)){      $temp = array();      foreach($arr as $index=> $val){        $temp[$index] = $val[$field];      }      $args[$key] = $temp;    }  }  $args[] = &$arr;//引用值  call_user_func_array('array_multisort',$args);  return array_pop($args);}$arr = sortarrbymanyfield($array1,'id',sort_asc,'name',sort_asc,'age',sort_desc);print_r($arr);
结果如下:
array(4) {
     [0]=>array(3) {
           [id]=>int(5)
           [name]=>string(3) cos
           [age]=>int(16)
         }
     [1]=>array(3) {
           [id]=>int(5)
           [name]=>string(3) cos
           [age]=>int(14)
         }
     [2]=>array(3) {
           [id]=>int(8)
           [name]=>string(5) apple
           [age]=>int(18)
         }
     [3]=>array(3) {
           [id]=>int(8)
           [name]=>string(3) bed
           [age]=>int(17)
     }
   }

【相关教程:php视频教程】
以上就是php 数组按多个字段排序实现代码的详细内容。
其它类似信息

推荐信息