PHP Conference Japan 2024

ArrayObject::uksort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayObject::uksort使用使用者自訂的比較函式依鍵值排序項目

說明

public ArrayObject::uksort(callable $callback): true

此函式使用使用者提供的比較函式對項目的鍵值進行排序。鍵值與項目的對應關係將會被保留。

注意:

如果兩個成員比較相等,它們會保留其原始順序。在 PHP 8.0.0 之前,它們在排序陣列中的相對順序未定義。

參數

callback

如果第一個參數分別小於、等於或大於第二個參數,則比較函式必須回傳小於、等於或大於零的整數。

callback(混合類型 $a, 混合類型 $b): 整數
注意

從比較函式傳回*非整數*值,例如 浮點數,將導致回呼函式傳回值的內部轉換為 整數。因此,諸如 0.990.1 之類的值都將被轉換為整數值 0,這將比較這些值是否相等。

傳回值

總是傳回 true

更新日誌

版本 說明
8.2.0 現在的傳回類型是 true;以前是 布林值

範例

範例 #1 ArrayObject::uksort() 範例

<?php
function cmp($a, $b) {
$a = preg_replace('@^(a|an|the) @', '', $a);
$b = preg_replace('@^(a|an|the) @', '', $b);
return
strcasecmp($a, $b);
}

$array = array("John" => 1, "the Earth" => 2, "an apple" => 3, "a banana" => 4);
$arrayObject = new ArrayObject($array);
$arrayObject->uksort('cmp');

foreach (
$arrayObject as $key => $value) {
echo
"$key: $value\n";
}
?>

以上範例將輸出

an apple: 3
a banana: 4
the Earth: 2
John: 1

參見

新增筆記

使用者貢獻的筆記

此頁面沒有使用者貢獻的筆記。
To Top