查詢

ArrayObject::uksort()函式—用法及示例

「 使用使用者自定義的比較函式,根據陣列鍵對陣列進行排序 」


ArrayObject::uksort() 函式用於使用使用者自定義的比較函式,根據陣列鍵對陣列進行排序。該函式會修改原始的 ArrayObject,不返回任何值。

以下是 ArrayObject::uksort() 函式的語法:

public void ArrayObject::uksort ( callable $cmp_function )

引數說明:

  • cmp_function:必需,用於比較兩個鍵的回撥函式。

回撥函式的規則如下:

  • 接受兩個引數,分別是要進行比較的鍵。
  • 如果第一個鍵小於第二個鍵,返回一個負整數。
  • 如果第一個鍵大於第二個鍵,返回一個正整數。
  • 如果兩個鍵相同,返回 0。

下面是 ArrayObject::uksort() 函式的示例程式碼:

<?php
// 定義一個自定義的比較函式用於按鍵的長度排序
function compareKeys($key1, $key2) {
    $length1 = strlen($key1);
    $length2 = strlen($key2);

    if ($length1 < $length2) {
        return -1;
    } elseif ($length1 > $length2) {
        return 1;
    } else {
        return 0;
    }
}

// 建立一個 ArrayObject 物件
$arrayObject = new ArrayObject([
    'apple' => '蘋果',
    'banana' => '香蕉',
    'pear' => '梨',
]);

// 使用 uksort() 函式根據鍵的長度進行排序
$arrayObject->uksort('compareKeys');

// 遍歷排序後的陣列
foreach ($arrayObject as $key => $value) {
    echo "<p>{$key}: {$value}</p>";
}
?>

以上程式碼將輸出:

<p>pear: 梨</p>
<p>apple: 蘋果</p>
<p>banana: 香蕉</p>

在示例程式碼中,我們首先定義了一個自定義的比較函式 compareKeys(),它會按鍵的長度比較鍵的大小。然後,我們建立了一個 ArrayObject 物件,並使用 uksort() 函式根據鍵的長度對陣列進行排序。最後,我們透過 foreach 迴圈遍歷排序後的陣列,並將每個鍵值對輸出為 HTML 標籤的形式。

補充糾錯
上一個函式: ArrayObject::uasort()函式
熱門PHP函式
分享連結