概要

オブジェクトリスト (ch09 で扱った連想配列の配列) から「条件に合う要素だけ取り出す」のは、データを使う上で必須の操作。「年齢 20 以上のユーザー」「在庫切れの商品」「未読のメッセージ」など、現実のアプリで毎回出てくるパターンだ。書き方は単純で、foreach で 1 件ずつ取り出し、if で条件を判定して、合致するものだけ処理する という素朴な線形検索になる。

基本形は foreach ($users as $user) { if ($user['age'] >= 20) { echo $user['name'] . "\n"; } }foreach の中に if を入れる だけで、データベースの WHERE 句に相当する絞り込みができる。条件は >= (以上) / === (厳密一致) / && (かつ) など組み合わせて自由に書ける。複雑な条件でも 1 件ずつ判定すれば必ず正しい結果が出るので、まずはこの素朴な書き方を確実に書けるようになる。

慣れてくると array_filter でも書ける。array_filter($users, fn($u) => $u['age'] >= 20) のようにアロー関数で条件を書くと、絞り込み結果の配列が返ってくる。ただし最初は foreach + if で「条件を満たすものだけ何かをする」というロジックを 自分の手で書く 経験を積むほうが、後で array_filter を読んだ時の理解が深まる。線形検索は計算量 O(N) だが、ch12 や実務でも十分使えるパターン。

学習目標

ドリル

no 内容
01 年齢 20 以上の人の名前だけ出力

演習: ドリル 01 — 年齢 20 以上の人を出力

問題

次のデータが与えられています。

$users = [
    ['name' => '太郎', 'age' => 20],
    ['name' => '花子', 'age' => 25],
    ['name' => '次郎', 'age' => 18],
    ['name' => '三郎', 'age' => 30],
];

age20 以上 の人の名前だけを、1 行ずつ上から順に出力してください。

期待される出力:

太郎
花子
三郎

ヒント

この章を AI に聞く

  1. 「ch10 — 条件で検索」のつまずきやすいポイントを、初学者向けに3つ教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

  2. 「ch10 — 条件で検索」について、自分の手で試せる練習問題を3つ出してください (難易度を上げながら)

    💬 ChatGPT 📘 Claude ✨ Gemini

  3. 「ch10 — 条件で検索」を学んだ後、次に学ぶと良いトピックは何ですか?理由も教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

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

ch10 — 条件で検索」を読み終えました。
学んだことを誰かに教えると、もっと記憶に残ります。

X で共有 Hatena LINE