多次元配列 / ch06
各行の合計を出す
<!-- LLM_CONTEXT: Lesson 6 / Chapter 6 目的: 2 次元配列の「各行」の合計を計算・出力できるようにする 扱わない: 列ごとの合計 (ch07) 読み上げ時間目安: 3 分半〜4 分 -->
各行の合計を出す
Lesson 6 / Chapter 6
行ごとに合計したい
<?php
$table = [
[1, 2, 3], // 行 0 の合計 = 6
[4, 5, 6], // 行 1 の合計 = 15
[7, 8, 9], // 行 2 の合計 = 24
];- 各行は 1 次元配列なので、合計の出し方は L4 (配列基本) と同じ
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問)
サイト内で問題文・雛形・解答例を確認できます。実際に手元で解くには教材リポジトリ(nomuraya-dojo/php)を clone してください。