函式名:uasort()
適用版本:PHP 4, PHP 5, PHP 7
用法:uasort() 函式對陣列進行排序,使用使用者自定義的比較函式進行排序,並保持陣列的鍵值關聯。排序後的陣列將按照值的升序重新排序。
語法:bool uasort ( array &$array, callable $cmp_function )
引數:
- $array:需要排序的陣列。
- $cmp_function:比較函式,用於確定元素的順序。比較函式接受兩個引數,比較$a和$b的值,根據返回值的不同,決定$a和$b的順序。
返回值:排序成功返回 true,否則返回 false。
示例:
// 自定義比較函式,按照值的長度進行排序
function compare_length($a, $b) {
if (strlen($a) == strlen($b)) {
return 0;
}
return (strlen($a) < strlen($b)) ? -1 : 1;
}
// 待排序的關聯陣列
$array = array(
"apple" => "red",
"banana" => "yellow",
"cherry" => "red",
"date" => "brown"
);
// 使用 uasort() 對陣列進行排序
uasort($array, "compare_length");
// 列印排序後的陣列
print_r($array);
輸出結果:
Array
(
[date] => brown
[apple] => red
[cherry] => red
[banana] => yellow
)
注意事項:
- uasort() 函式會修改原始陣列,而不是返回一個新的排序後的陣列。
- 比較函式需要返回整數值,-1 表示 $a 小於 $b,0 表示 $a 等於 $b,1 表示 $a 大於 $b。
- 如果比較函式返回相等的值,原始陣列的鍵值關聯將被保留。