最靠近碰到一个问题 一个二维数组,须要按照库存量排序,然后再按照门店间隔排序。

创造了这样一个这样子的方法:

$array1 = array(

php按照指定字段排序php实现数组按多个字段排序的办法介绍附代码 Docker

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实现数组按多个字段排序的方法先容(附代码)的详细内容,更多请关注其它干系文章!

更多技巧请《转发 + 关注》哦!