有些时候我们需要对二维数组中的数据做排序。比如按用户的积分逆序,演示数据如下
$arr = [
array(
'name' => '内容',
'age' => 28,
),
array(
'name' => '内容2',
'age' => 14
),
array(
'name' => '内容3',
'age' => 59,
),
array(
'name' => '内容4',
'age' => 23,
),
array(
'name' => '内容5',
'age' => 23,
),
array(
'name' => '内容6',
'age' => 21,
),
];
调用PHP内置函数 array_multisort 进行处理
array_multisort(array_column($arr,'age'),SORT_DESC,$arr);
默认是按照升序排序 SORT_ASC ,这里采用逆序 SORT_DESC
很好奇的是虽然把数值获取出来传参。但是程序怎么知道究竟对哪个数值KEY做排序。有可能里面还有时间、金额字段。
我没有看过源码,我的猜想是内部去匹配最合适的key 然后拿这个KEY 去根据排序元素 可以用 array_push array_unshift 将新的元素插入头部和尾部