概要

前章は で並べ替える asort を扱った。この章はもう 1 つの軸、キーで並べ替える 関数 ksortkrsort を学ぶ。ksort($arr) はキーの昇順 (アルファベット順・数字なら小さい順)、krsort($arr) は降順 (逆順)、と覚え方はシンプル。k がキー (key)、r が reverse (逆順) を表している。

使い所は 連想配列を出力する時にキーを揃えたい 場面。たとえば設定項目を config.json 風にダンプする時、キーをアルファベット順に並べておくと差分が読みやすくなる。あるいは「日付をキーにした集計結果」を時系列で並べたい時にも ksort が効く。プログラム内部のロジックではなく、人が見るための出力整形 に多く使われる関数だ。

注意点は前章と同じく 破壊的 な点。元の配列が書き換わるので、ソート前の順序が必要なら別変数にコピーしてから呼ぶ。また ksort は文字列キーと数値キーが混在する配列でも動くが、比較ルールが直感と違うことがあるため、本章では キーがすべて文字列 または すべて数値 の素直な連想配列だけを扱う。ドリル 01・02 で昇順・降順の両方を出力して、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

ヒント

演習: ドリル 02 — krsort でキー降順

問題

以下の連想配列が与えられています。

$scores = [
    'math'    => 80,
    'english' => 70,
    'science' => 90,
    'history' => 60,
];

krsortキーの降順 に並べ替え、キー => 値 形式で 1 行ずつ出力してください。

期待される出力:

science => 90
math => 80
history => 60
english => 70

ヒント

この章を AI に聞く

  1. 「ch07 — キーでソート」のつまずきやすいポイントを、初学者向けに3つ教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

  2. 「ch07 — キーでソート」について、自分の手で試せる練習問題を3つ出してください (難易度を上げながら)

    💬 ChatGPT 📘 Claude ✨ Gemini

  3. 「ch07 — キーでソート」を学んだ後、次に学ぶと良いトピックは何ですか?理由も教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

🎉 受講お疲れさまでした!

ch07 — キーでソート」を読み終えました。
学んだことを誰かに教えると、もっと記憶に残ります。

X で共有 Hatena LINE