概要
前章は 値 で並べ替える asort を扱った。この章はもう 1 つの軸、キーで並べ替える 関数 ksort と krsort を学ぶ。ksort($arr) はキーの昇順 (アルファベット順・数字なら小さい順)、krsort($arr) は降順 (逆順)、と覚え方はシンプル。k がキー (key)、r が reverse (逆順) を表している。
使い所は 連想配列を出力する時にキーを揃えたい 場面。たとえば設定項目を config.json 風にダンプする時、キーをアルファベット順に並べておくと差分が読みやすくなる。あるいは「日付をキーにした集計結果」を時系列で並べたい時にも ksort が効く。プログラム内部のロジックではなく、人が見るための出力整形 に多く使われる関数だ。
注意点は前章と同じく 破壊的 な点。元の配列が書き換わるので、ソート前の順序が必要なら別変数にコピーしてから呼ぶ。また ksort は文字列キーと数値キーが混在する配列でも動くが、比較ルールが直感と違うことがあるため、本章では キーがすべて文字列 または すべて数値 の素直な連想配列だけを扱う。ドリル 01・02 で昇順・降順の両方を出力して、asort (値で並べる) との使い分けを身につける。
学習目標
ksort($arr)で連想配列をキーの昇順に並べ替えできるkrsort($arr)で連想配列をキーの降順に並べ替えできる- 値で並べる asort と用途を区別できる
ドリル
| no | 内容 |
|---|---|
| 01 | ksort で連想配列をキー昇順に出力 |
| 02 | krsort で連想配列をキー降順に出力 |
📝 演習: ドリル 01 — ksort でキー昇順
問題
以下の連想配列が与えられています。
$scores = [
'math' => 80,
'english' => 70,
'science' => 90,
'history' => 60,
];ksort で キーの昇順 に並べ替え、キー => 値 形式で 1 行ずつ出力してください。
期待される出力:
english => 70
history => 60
math => 80
science => 90ヒント
ksort($scores);foreach ($scores as $k => $v) { echo $k . ' => ' . $v . "\n"; }
📝 演習: ドリル 02 — krsort でキー降順
問題
以下の連想配列が与えられています。
$scores = [
'math' => 80,
'english' => 70,
'science' => 90,
'history' => 60,
];krsort で キーの降順 に並べ替え、キー => 値 形式で 1 行ずつ出力してください。
期待される出力:
science => 90
math => 80
history => 60
english => 70ヒント
krsort($scores);foreach ($scores as $k => $v) { echo $k . ' => ' . $v . "\n"; }