関数の概要
PHPのkrsort関数は、連想配列のキーを降順(大きい順)にソートするための関数です。キーに基づいて配列の要素を並び替えたい場合に便利で、キーが文字列の場合は辞書式順序、キーが数値の場合は数値の大きい順に並び替えられます。
パラメータの説明
array(参照渡し): ソート対象の配列。連想配列が一般的。sort_flags(省略可能): ソートの方式を指定する定数。デフォルトはSORT_REGULAR。主な指定例は以下の通りです。SORT_NUMERIC:数値として比較SORT_STRING:文字列として比較SORT_NATURAL:自然順ソート(人間が見た順)SORT_FLAG_CASE:大文字小文字を区別しない(SORT_STRINGと組み合わせて使う)
戻り値
ソートに成功すると true、失敗すると false を返します。関数は配列を参照渡しで受け取り、直接書き換えを行うため、戻り値はソートの成否のみを示します。
使用例
基本的な使い方
<?php
$array = array('b' => 2, 'a' => 1, 'c' => 3);
krsort($array);
print_r($array);
?>
この例では、キー ‘c’, ‘b’, ‘a’ の順で降順ソートされます。結果はキーの降順に並び替えられた配列が出力されます。
数値キーの降順ソート
<?php
$array = array(3 => '三', 1 => '一', 2 => '二');
krsort($array, SORT_NUMERIC);
print_r($array);
?>
数値のキーを持つ配列で、SORT_NUMERICを指定することで数字として正確に降順ソートが行われます。
自然順ソートを使った例
<?php
$array = array('image10' => '画像10', 'image2' => '画像2', 'image1' => '画像1');
krsort($array, SORT_NATURAL);
print_r($array);
?>
文字列のキーを自然順(人が見やすい順)に降順でソートする例です。SORT_NATURALを使うことで、例えば “image10” は “image2” より後に来る自然な順序になります。
関連する関数
ksort:キーを昇順にソートするasort:値を維持しつつ昇順にソートするarsort:値を維持しつつ降順にソートするsort:値のみを昇順に再索引してソートするrsort:値のみを降順に再索引してソートする
まとめ
krsortは配列のキーを降順に並び替えたい時に非常に役立つPHPの組み込み関数です。キーの種類に応じてソート方式を指定でき、使い勝手が良いため、連想配列のデータ処理や表示順制御におすすめです。実務でも頻繁に使われる基本的な関数なので、ぜひ使い方をマスターしておきましょう。
