旗下导航:搜·么
当前位置:网站首页 > PHP教程 > 正文

PHP 数组按多个字段排序完成代码【php教程】

作者:搜搜PHP网发布时间:2019-11-26分类:PHP教程浏览:89


导读:本文重要报告了用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 数组按多个字段排序完成代码的细致内容,更多请关注ki4网别的相干文章!

标签:php数组排序