array_multisort()
函數(shù)用于對(duì)多個(gè)數(shù)組或多維數(shù)組進(jìn)行排序。這個(gè)函數(shù)可以一次為一個(gè)或多個(gè)數(shù)組排序,同時(shí)保留原始數(shù)組中鍵和值之間的關(guān)聯(lián)。array_multisort()
函數(shù)的語(yǔ)法如下:
bool array_multisort ( array &$array1 [, mixed $array1_sort_order = SORT_ASC [, mixed $array1_sort_flags = SORT_REGULAR [, array &$... ]]] )
參數(shù)說(shuō)明:
$array1
, $array2
, … : 要排序的數(shù)組,可以有多個(gè)數(shù)組。$array1_sort_order
: 可選參數(shù),指定排序順序。默認(rèn)值為 SORT_ASC
(升序),也可以使用 SORT_DESC
(降序)。$array1_sort_flags
: 可選參數(shù),指定排序類型。默認(rèn)值為 SORT_REGULAR
,表示正常比較。其他可能的值包括:
SORT_NUMERIC
:數(shù)字比較SORT_STRING
:字符串比較SORT_NATURAL
:自然順序比較(不區(qū)分大小寫)SORT_FLAG_CASE
:與 SORT_STRING
結(jié)合使用,按照字母順序排序,不區(qū)分大小寫示例:
<?php
// 示例數(shù)組
$age = array("Peter"=>35, "Ben"=>37, "Joe"=>43);
$city = array("Peter"=>"New York", "Ben"=>"Chicago", "Joe"=>"San Francisco");
// 根據(jù)年齡升序排列,如果年齡相同,則根據(jù)城市名稱排序
array_multisort($age, SORT_ASC, SORT_NUMERIC, $city, SORT_ASC, SORT_STRING);
// 打印排序后的數(shù)組
print_r($age);
print_r($city);
?>
輸出結(jié)果:
Array
(
[Peter] => 35
[Ben] => 37
[Joe] => 43
)
Array
(
[Peter] => New York
[Ben] => Chicago
[Joe] => San Francisco
)
在這個(gè)示例中,我們首先根據(jù) $age
數(shù)組進(jìn)行升序排序,然后根據(jù) $city
數(shù)組進(jìn)行升序排序。注意,$age
和 $city
數(shù)組中的鍵(姓名)仍然保持關(guān)聯(lián)。