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 数组中的键(姓名)仍然保持关联。