ArrayIterator::uksort()
方法用於對 ArrayIterator 物件中的鍵進行排序。它使用使用者自定義的回撥函式來比較鍵的值,並根據比較結果重新排列鍵的順序。
用法:
ArrayIterator::uksort ( callable $cmp_function ) : bool
引數:
$cmp_function
:必需,一個可呼叫的函式,用於比較鍵的值。函式接受兩個引數,分別是需要比較的兩個鍵。比較函式應當返回一個整數,表示兩個鍵的比較結果。
返回值:
- 如果排序成功,則返回
true
,否則返回false
。
示例:
假設有以下的 ArrayIterator 物件:
$array = new ArrayIterator([
'apple' => 3,
'banana' => 2,
'cherry' => 5,
'date' => 1
]);
我們想按照鍵的字母順序對其進行排序。可以使用 uksort()
方法來實現:
$array->uksort(function($a, $b) {
return strcmp($a, $b);
});
foreach ($array as $key => $value) {
echo "$key: $value<br>";
}
輸出結果為:
apple: 3
banana: 2
cherry: 5
date: 1
在示例中,我們使用了 uksort()
方法,將比較函式傳遞給它。比較函式使用 strcmp()
函式來比較兩個鍵的字母順序。根據比較結果,uksort()
方法對鍵重新排列,最終我們得到按照字母順序排序的鍵值對陣列。最後使用 foreach
迴圈遍歷陣列,輸出排序後的結果。