该功能更好的处理方式请参考:php二维数组按其中某一列排序
php二维数组按某个字段排序。
如需要将以下user_list变量按照第二维的字段age排序,则可以:
$user_list = [ ['name' => '张三', 'age' => 28], ['name' => '李四', 'age' => 21], ['name' => '王五', 'age' => 20], ['name' => '赵六', 'age' => 21] ];
按升序排列:
array_multisort(array_column($user_list, 'age'), SORT_ASC, $user_list);
结果:
Array
(
[0] => Array
(
[name] => 王五
[age] => 20
)
[1] => Array
(
[name] => 李四
[age] => 21
)
[2] => Array
(
[name] => 赵六
[age] => 21
)
[3] => Array
(
[name] => 张三
[age] => 28
)
)
说明:
array_column(数组, 数组中的某个键值) 从二维维数组中取出某个键值的一列 返回一个一维数组;
array_multisort() 可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。关联(string)键名保持不变,但数字键名会被重新索引。
关于 array_multisort 函数的详细用法可参考:
http://www.php.net/manual/zh/function.array-multisort.php