查詢

ArrayIterator::uasort()函式—用法及示例

「 根據值對陣列進行自定義排序,保留鍵值關聯。這個函式會改變原始陣列 」


ArrayIterator::uasort() 函式用於根據值對陣列進行自定義排序,保留鍵值關聯。這個函式會改變原始陣列。

用法:

ArrayIterator::uasort( array $array, callable $callback ): bool

引數:

  • $array:要排序的陣列。
  • $callback:自定義排序的回撥函式,該函式接受兩個引數,比較兩個陣列元素的值並返回排序結果。

返回值:

  • 函式執行成功時返回 true,否則返回 false

示例: 假設有以下陣列需要根據值進行排序:

$fruits = array(
    "apple" => "red",
    "banana" => "yellow",
    "orange" => "orange",
    "grape" => "purple"
);

下面是一個使用 ArrayIterator::uasort() 的示例:

// 自定義排序函式,根據值的長度進行升序排序
function sortByLength($a, $b) {
    if (strlen($a) == strlen($b)) {
        return 0;
    }
    return (strlen($a) < strlen($b)) ? -1 : 1;
}

// 使用 ArrayIterator::uasort() 對陣列進行排序
$iterator = new ArrayIterator($fruits);
$iterator->uasort('sortByLength');

// 輸出排序後的結果
foreach ($iterator as $key => $value) {
    echo "<p>$key: $value</p>";
}

輸出結果:

<p>grape: purple</p>
<p>apple: red</p>
<p>banana: yellow</p>
<p>orange: orange</p>

在上面的示例中,我們定義了一個自定義排序函式 sortByLength($a, $b),該函式按字串長度升序排序。然後使用 ArrayIterator::uasort() 方法根據值的長度對 $fruits 陣列進行排序。最後,使用 foreach 迴圈遍歷排序後的陣列,並將鍵值對以 <p> 標籤包裹輸出。

請注意,ArrayIterator::uasort() 方法會改變原始陣列的順序,不返回新的排序後的陣列。

補充糾錯
上一個函式: ArrayIterator::setFlags()函式
下一個函式: ArrayIterator::uksort()函式
熱門PHP函式
分享連結