查詢

uasort()函式—用法及示例

「 對陣列進行排序,使用使用者自定義的比較函式進行排序,並保持陣列的鍵值關聯 」


函式名: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。
  • 如果比較函式返回相等的值,原始陣列的鍵值關聯將被保留。
補充糾錯
上一個函式: UConverter::convert()函式
下一個函式: trim()函式
熱門PHP函式
分享連結