大家在进行php二维数组或者多维数组按照某个“键值”进行排序时,可能大都想到的都是进行一次foreach判断然后重新组合成新的数组,接下来唯科网络教您一个简单的函数,优雅的进行多维数组排序:
代码:
<?php
$a=array(8,5,6,1,5,2);
$b=array('b','s','d','z','g','r');
array_multisort($a,$b);
var_dump($a);
var_dump($b);
?>
输出:
//$a
array(1,2,5,5,6,8)
//$b
array('z','r','g','s','d','b');
函数使用说明:
array_multisort
(PHP 4, PHP 5, PHP 7, PHP 8)
array_multisort — 对多个数组或多维数组进行排序
array_multisort ( array &$array1 , mixed $array1_sort_order = SORT_ASC , mixed $array1_sort_flags = SORT_REGULAR , mixed $... = ? ) : bool
array_multisort() 可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。
关联(string)键名保持不变,但数字键名会被重新索引。
注意:
如果两个成员完全相同,那么它们在排序数组中的相对顺序是未定义的。
参数:
array1
要排序的 array。
array1_sort_order
之前 array 参数要排列的顺序。 SORT_ASC 按照上升顺序排序, SORT_DESC 按照下降顺序排序。
此参数可以和 array1_sort_flags 互换,也可以完全删除,默认是 SORT_ASC 。
array1_sort_flags
为 array 参数设定选项:
排序类型标志:
SORT_REGULAR - 将项目按照通常方法比较(不修改类型)
SORT_NUMERIC - 按照数字大小比较
SORT_STRING - 按照字符串比较
SORT_LOCALE_STRING - 根据当前的本地化设置,按照字符串比较。 它会使用 locale 信息,可以通过 setlocale() 修改此信息。
SORT_NATURAL - 以字符串的"自然排序",类似 natsort()
SORT_FLAG_CASE - 可以组合 (按位或 OR) SORT_STRING 或者 SORT_NATURAL 大小写不敏感的方式排序字符串。
参数可以和 array1_sort_order 交换或者省略,默认情况下是 SORT_REGULAR。
可选的选项,可提供更多数组,跟随在 sort order 和 sort flag 之后。 提供的数组和之前的数组要有相同数量的元素。 换言之,排序是按字典顺序排列的。