概要

組み込み関数だけで完結する処理はラクだが、現実には 「合計と同時に平均も出したい」「ある条件の要素だけ加算したい」 のように、関数 1 つでは足りない複合処理がよく出てくる。そんな時に必要なのが for ループで配列を走査する 技術。配列の添字を 0 から count($arr) - 1 まで動かして、1 要素ずつ取り出して処理を組み立てる。

定型は for ($i = 0; $i < count($arr); $i++) { ... $arr[$i] ... } の形。ループの中で $arr[$i] を使えば、現在の要素にアクセスできる。「ループ条件で毎回 count($arr) を呼ぶと遅いのでは」と心配する人もいるが、PHP の count は内部にカウンタを持っていて、配列のサイズを O(1) で返す。よほど巨大でなければ気にしなくていい。

ここでのドリルでは array_summaxあえて使わずに 同じ処理を for で組み直す。これは「組み込み関数の中身ではこういうループが走っている」ことを体感するための練習で、内部動作のイメージを持っていると、後で「自分の要件にぴったり合う組み込み関数が無いとき」に for で書き起こせる。関連トピックの array-assoc では連想配列向けの foreach も登場するので、まずは添字を直接動かす for に慣れておく。

学習目標

ドリル

no 内容
01 for で配列の全要素を 1 行ずつ出力
02 for で配列の合計を計算して出力 (array_sum 使わない)
03 for で配列の最大値を探して出力 (max 使わない)

演習: ドリル 01 — 全要素を出力

問題

配列 [10, 20, 30, 40, 50] の全要素を for ループで 1 行ずつ 出力してください。

期待される出力:

10
20
30
40
50

ヒント

演習: ドリル 02 — for で合計

問題

配列 [5, 10, 15, 20, 25] の合計を for ループ で計算して 1 行出力してください。 array_sum() は使わないこと。

期待される出力:

75

ヒント

演習: ドリル 03 — for で最大値

問題

配列 [14, 27, 9, 41, 33, 20] の最大値を for ループ で探して 1 行出力してください。 max() は使わないこと。

期待される出力:

41

ヒント

この章を AI に聞く

  1. 「ch05 — for で配列を走査する」のつまずきやすいポイントを、初学者向けに3つ教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

  2. 「ch05 — for で配列を走査する」について、自分の手で試せる練習問題を3つ出してください (難易度を上げながら)

    💬 ChatGPT 📘 Claude ✨ Gemini

  3. 「ch05 — for で配列を走査する」を学んだ後、次に学ぶと良いトピックは何ですか?理由も教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

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

ch05 — for で配列を走査する」を読み終えました。
学んだことを誰かに教えると、もっと記憶に残ります。

X で共有 Hatena LINE