array_multisort()
函数用于对多个数组或多维数组进行排序。这个函数可以一次为一个或多个数组排序,同时保留原始数组中键和值之间的关联。array_multisort()
函数的语法如下:
bool array_multisort ( array &$array1 [, mixed $array1_sort_order = SORT_ASC [, mixed $array1_sort_flags = SORT_REGULAR [, array &$... ]]] )
参数说明:
$array1
,$array2
, … : 要排序的数组,可以有多个数组。$array1_sort_order
: 可选参数,指定排序顺序。默认值为SORT_ASC
(升序),也可以使用SORT_DESC
(降序)。$array1_sort_flags
: 可选参数,指定排序类型。默认值为SORT_REGULAR
,表示正常比较。其他可能的值包括:SORT_NUMERIC
:数字比较SORT_STRING
:字符串比较SORT_NATURAL
:自然顺序比较(不区分大小写)SORT_FLAG_CASE
:与SORT_STRING
结合使用,按照字母顺序排序,不区分大小写
示例:
35, "Ben"=>37, "Joe"=>43); $city = array("Peter"=>"New York", "Ben"=>"Chicago", "Joe"=>"San Francisco"); // 根据年龄升序排列,如果年龄相同,则根据城市名称排序 array_multisort($age, SORT_ASC, SORT_NUMERIC, $city, SORT_ASC, SORT_STRING); // 打印排序后的数组 print_r($age); print_r($city); ?>
输出结果:
Array ( [Peter] => 35 [Ben] => 37 [Joe] => 43 ) Array ( [Peter] => New York [Ben] => Chicago [Joe] => San Francisco )
在这个示例中,我们首先根据 $age
数组进行升序排序,然后根据 $city
数组进行升序排序。注意,$age
和 $city
数组中的键(姓名)仍然保持关联。