krsort

関数の概要

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の組み込み関数です。キーの種類に応じてソート方式を指定でき、使い勝手が良いため、連想配列のデータ処理や表示順制御におすすめです。実務でも頻繁に使われる基本的な関数なので、ぜひ使い方をマスターしておきましょう。