您的位置 首页 php

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 数组按多个字段排序实现代码的详细内容,更多请关注求知技术网其它相关文章!

文章来源:智云一二三科技

文章标题:PHP 数组按多个字段排序实现代码

文章地址:https://www.zhihuclub.com/5719.shtml

关于作者: 智云科技

热门文章

网站地图