各行の合計を出す
テクノロジ系 / array-multi (多次元配列・オブジェクトリスト・CSV)
各行の合計を出す
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 を組み立てる書き方も書ける
✅ 行ごとにリセットすべき変数の位置が分かる
→ ドリルへ
考えてみよう
既定では正解・不正解の判定はしません。自分のペースで「答えを見る」を。採点してほしい場合だけ「採点してほしい」を押してください。
ドリル 01 — 各行の合計を出力
問題
次の 3×3 の 2 次元配列が与えられています。
$table = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
];各行の合計を、1 行ずつ出力してください (上の行から順に)。
期待される出力:
6 15 24
採点
php scripts/grade.php topics/array-multi/ch06-row-sum/drill/01-each-row-sum/
ヒント
foreach ($table as $row) { echo array_sum($row) . "\n"; }- もしくは内側 foreach で
$sumを組み立てる (行ごとに 0 にリセット)