ch06 12章中 6章目

ch06 — 各行の合計を出力

スライドで見る

この章を AI と学ぶ

💬 AI に聞く質問例 3 件
  1. 「ch06 — 各行の合計を出力」のつまずきやすいポイントを、初学者向けに3つ教えてください

    ChatGPT Claude Gemini

  2. 「ch06 — 各行の合計を出力」について、自分の手で試せる練習問題を3つ出してください (難易度を上げながら)

    ChatGPT Claude Gemini

  3. 「ch06 — 各行の合計を出力」を学んだ後、次に学ぶと良いトピックは何ですか?理由も教えてください

    ChatGPT Claude Gemini

概要

2 次元配列の 各行の合計 を求めるのは、「2 次元配列の処理」の最初の本格パターン。各行は 1 次元配列なので、合計の出し方は array-basic トピックで覚えた array_sumforeach$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 行で出力

解説スライド 全 6 枚

右の ボタン キー(またはスワイプ)で次のスライドに進めます。 下の「縦表示」を開くと全スライドを一気に読めます。

  1. 各行の合計を出す

    Lesson 6 / Chapter 6

  2. 行ごとに合計したい

    <?php
    $table = [
        [1, 2, 3],   // 行 0 の合計 = 6
        [4, 5, 6],   // 行 1 の合計 = 15
        [7, 8, 9],   // 行 2 の合計 = 24
    ];
    • 各行は 1 次元配列なので、合計の出し方は array-basic トピックと同じ
    • array_sum($row) か、内側 foreach で $sum += $value
  3. array_sum を使う書き方

    <?php
    $table = [
        [1, 2, 3],
        [4, 5, 6],
        [7, 8, 9],
    ];
    foreach ($table as $row) {
        echo array_sum($row) . "\n";
    }

    実行結果:

    6
    15
    24
    • 外側 foreach で行を 1 つずつ取り出す
    • array_sum($row) で 1 行分の合計を一発で計算
  4. 内側 foreach で組み立てる書き方

    <?php
    foreach ($table as $row) {
        $sum = 0;
        foreach ($row as $value) {
            $sum += $value;
        }
        echo $sum . "\n";
    }
    • 行が変わるたびに $sum = 0 でリセット (これ重要)
    • 内側で 1 マスずつ足す
    • 行が終わったら echo $sum . "\n";
  5. $sum = 0 のリセットを忘れると...

    <?php
    $sum = 0;   // ← 外側で 1 回しか初期化していない
    foreach ($table as $row) {
        foreach ($row as $value) {
            $sum += $value;
        }
        echo $sum . "\n";   // 6, 21, 45 (累計になってしまう)
    }
    • 「各行の合計」のはずが「ここまでの累計」になる
    • 行ごとの合計を出すなら、外側ループの で初期化する
  6. このチャプターでできるようになること

    ✅ 各行の合計を 1 行ずつ出力できる ✅ array_sum で簡潔に書ける ✅ 内側 foreach で $sum を組み立てる書き方も書ける ✅ 行ごとにリセットすべき変数の位置が分かる

    → ドリルへ

1 / 6
📜 スライドを全部一気に読む(縦表示)

Lesson 6 / Chapter 6


行ごとに合計したい

<?php
$table = [
    [1, 2, 3],   // 行 0 の合計 = 6
    [4, 5, 6],   // 行 1 の合計 = 15
    [7, 8, 9],   // 行 2 の合計 = 24
];
  • 各行は 1 次元配列なので、合計の出し方は array-basic トピックと同じ
  • array_sum($row) か、内側 foreach で $sum += $value

array_sum を使う書き方

<?php
$table = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9],
];
foreach ($table as $row) {
    echo array_sum($row) . "\n";
}

実行結果:

6
15
24
  • 外側 foreach で行を 1 つずつ取り出す
  • array_sum($row) で 1 行分の合計を一発で計算

内側 foreach で組み立てる書き方

<?php
foreach ($table as $row) {
    $sum = 0;
    foreach ($row as $value) {
        $sum += $value;
    }
    echo $sum . "\n";
}
  • 行が変わるたびに $sum = 0 でリセット (これ重要)
  • 内側で 1 マスずつ足す
  • 行が終わったら echo $sum . "\n";

$sum = 0 のリセットを忘れると...

<?php
$sum = 0;   // ← 外側で 1 回しか初期化していない
foreach ($table as $row) {
    foreach ($row as $value) {
        $sum += $value;
    }
    echo $sum . "\n";   // 6, 21, 45 (累計になってしまう)
}
  • 「各行の合計」のはずが「ここまでの累計」になる
  • 行ごとの合計を出すなら、外側ループの で初期化する

このチャプターでできるようになること

✅ 各行の合計を 1 行ずつ出力できる ✅ array_sum で簡潔に書ける ✅ 内側 foreach で $sum を組み立てる書き方も書ける ✅ 行ごとにリセットすべき変数の位置が分かる

→ ドリルへ

この章で取り組む 演習問題の流れ (1ステップ)
  1. 01 ドリル 01 — 各行の合計を出力 README.md starter.php answer.php

演習問題の詳細

この章の演習問題の内容を読めます。実際に手元で解くには教材リポジトリを clone してください。

ドリル 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 にリセット)

🧪 ブラウザで試す

スライドのコードを写経して ▶ 実行、自分で書いて 📝 採点 で答え合わせ。初回のみ PHP ランタイム読込で数秒かかります。

PHP ランタイム未読込

          

        

演習問題(1問)

  1. ドリル 01 — 各行の合計を出力

    README.md starter.php answer.php

サイト内で問題文・雛形・解答例を確認できます。実際に手元で解くには教材リポジトリを clone してください。

完了にすると進捗に反映されます