PHP的二维数组排序
2018-12-17 16:21
PHP
数组排序
array_multisort
摘要:PHP 二维数组排序用 array_multisort 挺方便的,结合 array_column 提取排序字段,正序倒序都能搞定。
我们在开发过程中,经常会遇到给数组排序,熟悉PHP的朋友都知道sort、rsort、ksort、krsort等等这些常用的数组排序函数,但是这些函数都是给一维数组排序的,PHP有没有给二维数组或者多维数组排序的函数呢?
答案是有的,array_multisort这个函数就是用来给多维数组排序的。
例如:
$students = array(
array('id' => 1, 'name' => 'Tom'),
array('id' => 5, 'name' => 'Tim'),
array('id' => 2, 'name' => 'Tony'),
array('id' => 4, 'name' => 'Jhon'),
array('id' => 3, 'name' => 'Ted')
);
通过id给学生排序
$ids = array_column($students, 'id');
正序
array_multisort($ids, SORT_ASC, $students);
倒序
array_multisort($ids, SORT_DESC, $students);
这样就很方便的给二维数组排序了,多维数组排序的道理一样,可以参考PHP的官方文档。
PHP的数组排序函数:
array_multisort — 对多个数组或多维数组进行排序
arsort — 对数组进行逆向排序并保持索引关系
asort — 对数组进行排序并保持索引关系
krsort — 对数组按照键名逆向排序
ksort — 对数组按照键名排序
natcasesort — 用“自然排序”算法对数组进行不区分大小写字母的排序
natsort — 用“自然排序”算法对数组排序
rsort — 对数组逆向排序
sort — 对数组排序
uasort — 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
uksort — 使用用户自定义的比较函数对数组中的键名进行排序
usort — 使用用户自定义的比较函数对数组中的值进行排序