ArrayObject::uksort

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

ArrayObject::uksortユーザー定義の比較関数を使って、キーでエントリをソートする

説明

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

この関数は、ユーザー定義の比較関数を使ってキーでエントリをソートします。 キーとそれに対応する値の関連は保持されたままとなります。

注意:

比較結果が等しくなる二つの要素があった場合、それらの並び順は保持されます。PHP 8.0.0 より前のバージョンでは、ソートした配列におけるそれらの並び順は不定でした。

パラメータ

callback

比較関数は、最初の引数と二番目の引数の比較結果を返します。最初の引数のほうが二番目の引数より大きい場合は正の数を、二番目の引数と等しい場合はゼロを、そして二番目の引数より小さい場合は負の数を返す必要があります。

callback(mixed $a, mixed $b): int

戻り値

常に 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

参考

関連キーワード:  ソート, 比較, エントリ, 関数, キー, ArrayObject, ユーザー, 定義, uksort, 保持