ksort

関数の概要

ksortはPHPの組み込み関数で、連想配列のキーを基準にして配列を昇順にソートします。配列のキーをわかりやすい順番に整列させたい場合に非常に便利な関数で、特に連想配列の操作でよく使われます。

パラメータの説明

  • array(参照渡し): ソート対象の配列を指定します。関数内で配列が直接ソートされるため、結果は元の配列に反映されます。
  • sort_flags(省略可): ソートの挙動を変更するためのフラグです。主に以下の値があります。
    • SORT_REGULAR(デフォルト): 通常の比較を行います。
    • SORT_NUMERIC: 数値として比較します。
    • SORT_STRING: 文字列として比較します。
    • SORT_NATURAL: 人間が理解しやすい自然順ソートを行います。
    • SORT_FLAG_CASE: 大文字小文字を区別しないソートを行いたい場合に使います(SORT_STRING

戻り値

ソートが成功した場合は true を返します。何らかの理由でソートが失敗した場合は false を返します。通常は配列の参照そのものにソート結果が反映されるため、戻り値で配列を受け取る必要はありません。

使用例

基本的な使い方

<?php
$array = array("c" => 3, "a" => 1, "b" => 2);
ksort($array);
print_r($array);
?>

この例では、キー「c」「a」「b」の順に並んでいた配列が、キーの昇順「a」「b」「c」に並び替えられます。

数値キーのソート

<?php
$array = array(10 => 'ten', 2 => 'two', 33 => 'thirty-three');
ksort($array, SORT_NUMERIC);
print_r($array);
?>

数値のキーを持つ配列も同様に昇順でソートされます。SORT_NUMERICを明示的に指定することで数値比較を保証しますが、省略しても基本的には同じ動作です。

自然順ソートを使う例

<?php
$array = array("img12" => "image12.jpg", "img1" => "image1.jpg", "img2" => "image2.jpg");
ksort($array, SORT_NATURAL);
print_r($array);
?>

文字列のキーに数字を含む場合は、SORT_NATURALを使うと「img1」「img2」「img12」のように人間が自然に認識する順番でソートされます。

関連する関数

  • asort — 値を保持したまま配列を値で昇順ソート
  • arsort — キーを保持したまま配列を値で降順ソート
  • krsort — キーを基準に降順ソート
  • sort — 配列をインデックス順に昇順ソート(キーは再割り当てされる)
  • uksort — ユーザー定義関数を使ってキーをソート

まとめ

ksortはPHPで配列のキーを昇順に整列する際に基本的で便利な関数です。連想配列の順序を分かりやすくしたり、後続の処理でキーの順序を保証したい場合に役立ちます。使い方もシンプルで、パラメータ次第で自然順や数値順などの細かな制御も可能です。実務での配列操作では頻繁に利用されるため、使いこなせると非常に効果的です。