PHP多维数组排序,指定元素排序
这里用到两个函数,array_column(),array_multisort()。
将service按照age进行降序排序
$service= [
['name' => '张三', 'age' => 28],
['name' => '李四', 'age' => 21],
['name' => '王五', 'age' => 20],
['name' => '赵六', 'age' => 21]
];
// 排序
$arr = array_column($service, 'age');
array_multisort($arr , SORT_DESC, $service);
print_r($service);
结果
Array
(
[0] => Array
(
[name] => 张三
[age] => 28
)
[1] => Array
(
[name] => 李四
[age] => 21
)
[2] => Array
(
[name] => 赵六
[age] => 21
)
[3] => Array
(
[name] => 王五
[age] => 20
)
)
说明:
array_column(数组, 数组中的某个键值) 从二维维数组中取出某个键值的一列 返回一个一维数组;
array_multisort() 可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。关联(string)键名保持不变,但数字键名会被重新索引。