概要
2 次元配列の 各行の合計 を求めるのは、「2 次元配列の処理」の最初の本格パターン。各行は 1 次元配列なので、合計の出し方は array-basic トピックで覚えた array_sum や foreach で $sum += $value を組み立てる方法がそのまま使える。外側 foreach で 1 行ずつ取り出して、その行に対して合計を計算 → 出力、というのが基本の流れ。
一番すっきりするのは foreach ($table as $row) { echo array_sum($row) . "\n"; } で、1 行分の合計を array_sum に丸投げ する書き方。[1,2,3] の合計 6、[4,5,6] の合計 15、[7,8,9] の合計 24 が 3 行で出力される。array_sum を使わずに内側 foreach で $sum += $value を組み立てる書き方も学んでおく。後者は ch07 (列合計) や ch12 (総合演習) で 集計のロジックを自分で書く 時の土台になる。
最頻出のバグは「$sum = 0 のリセットを忘れる」。外側 foreach の 手前 で $sum = 0 を書いてしまうと、行が変わってもリセットされず「ここまでの累計」になってしまう (6, 21, 45 のように)。リセットは 外側ループの中・内側ループの直前 に置く、というスコープの感覚をここで身につける。これは後の章の集計処理でずっと使う基本動作。
学習目標
- 各行の合計を 1 行ずつ出力できる
array_sumで簡潔に書ける- 内側 foreach で
$sumを組み立てる書き方も書ける - 行ごとにリセットすべき変数の位置 (外側ループの中) が分かる
ドリル
| no | 内容 |
|---|---|
| 01 | 3×3 配列の各行の合計を 3 行で出力 |
📝 演習: ドリル 01 — 各行の合計を出力
問題
次の 3×3 の 2 次元配列が与えられています。
$table = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
];各行の合計を、1 行ずつ出力してください (上の行から順に)。
期待される出力:
6
15
24ヒント
foreach ($table as $row) { echo array_sum($row) . "\n"; }- もしくは内側 foreach で
$sumを組み立てる (行ごとに 0 にリセット)