最靠近碰到一个问题 一个二维数组,须要按照库存量排序,然后再按照门店间隔排序。
创造了这样一个这样子的方法:
$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实现数组按多个字段排序的方法先容(附代码)的详细内容,更多请关注其它干系文章!
更多技巧请《转发 + 关注》哦!