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

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

内容导读

收集整理的这篇技术教程文章主要介绍了PHP数组按多个字段排序实现代码,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1491字,纯文字阅读大概需要3分钟

内容图文

本文主要讲述了用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 数组按多个字段排序实现代码的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的PHP数组按多个字段排序实现代码全部内容,希望文章能够帮你解决PHP数组按多个字段排序实现代码所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。


本文关键词:

联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com