uksort

(PHP 4, PHP 5, PHP 7)

uksortユーザー定義の比較関数を用いて、キーで配列をソートする

説明

uksort ( array &$array , callable $key_compare_func ) : bool

uksort() は、 ユーザー定義の比較関数を用いて配列のキーをソートします。 ソートしたい配列を複雑な基準でソートする必要がある場合には、 この関数を使う必要があります。

注意:

比較結果が等しくなる二つの要素があった場合、ソートした配列におけるそれらの並び順は不定となります。

パラメータ

array

入力の配列。

key_compare_func

比較関数は、最初の引数と二番目の引数の比較結果を返します。最初の引数のほうが二番目の引数より大きい場合は正の数を、二番目の引数と等しい場合はゼロを、そして二番目の引数より小さい場合は負の数を返す必要があります。PHP 7.0.0 より前のバージョンでは、この整数が -2147483648 から 2147483647 までの範囲におさまる必要がありました。

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

返り値

成功した場合に TRUE を、失敗した場合に FALSE を返します。

例1 uksort() の例

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

$a = array("John" => 1"the Earth" => 2"an apple" => 3"a banana" => 4);

uksort($a"cmp");

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

上の例の出力は以下となります。

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

参考