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
结合使用,按照字母顺序排序,不区分大小写示例:
<?php
// 示例数组
$age = array("Peter"=>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
数组中的键(姓名)仍然保持关联。