php如何实现数组按多个字段排序的方法
这篇文章给大家分享的是有关php如何实现数组按多个字段排序的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

创新互联专注于企业全网营销推广、网站重做改版、花溪网站定制设计、自适应品牌网站建设、html5、商城网站开发、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为花溪等各大城市提供网站开发制作服务。
最接近碰到一个问题 一个二维数组,需要按照库存量排序,然后再按照门店距离排序。
发现了这样一个这样子的方法:
$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如何实现数组按多个字段排序的方法
文章URL:http://www.cqwzjz.cn/article/pcejoi.html


咨询
建站咨询
