ch05 12章中 5章目

ch05 — 表形式で整形出力

スライドで見る

この章を AI と学ぶ

💬 AI に聞く質問例 3 件
  1. 「ch05 — 表形式で整形出力」のつまずきやすいポイントを、初学者向けに3つ教えてください

    ChatGPT Claude Gemini

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

    ChatGPT Claude Gemini

  3. 「ch05 — 表形式で整形出力」を学んだ後、次に学ぶと良いトピックは何ですか?理由も教えてください

    ChatGPT Claude Gemini

概要

2 次元配列を 「表」として読める形 で画面に出すには、入れ子 foreach の中で 「マスは空白区切り、行末で改行」 という出力ルールを守る。foreach ($table as $row) { foreach ($row as $cell) { echo $cell . " "; } echo "\n"; } という骨格で、3×3 配列なら 3 行 × 3 列の見やすい出力ができる。

このとき要点は、改行を どこで出すか。内側 foreach の中で echo "\n" を出すとマスごとに改行して縦 1 列になってしまう。外側 foreach のループ末尾 (内側 foreach が終わった直後)echo "\n" を出すことで「1 行分が終わった」を表現する。「内側で空白、外側で改行」と覚えておくと混乱しない。

implode(" ", $row) を使うと「1 行分を空白区切りで連結した文字列」を一発で作れる。内側 foreach を消して foreach ($table as $row) { echo implode(" ", $row) . "\n"; } と書けば同じ結果になる。実務では printf("%3d %3d %3d\n", ...)str_pad桁を揃える バリエーションもよく使うので、空白区切りはあくまで最小形と捉えておく。

学習目標

  • 内側 foreach の中で値を空白区切りで出力し、行末で改行する書き方を覚える
  • 2 次元配列を「表」として読める形に出力できる
  • implode でも同じことができると知る

ドリル

no 内容
01 3×3 配列を空白区切りの表形式で 3 行出力

解説スライド 全 6 枚

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

  1. 表形式で整形出力

    Lesson 6 / Chapter 5

  2. 行 = 改行、列 = 空白区切り

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

    実行結果:

    1 2 3
    4 5 6
    7 8 9
    • 内側で空白付きで出力
    • 内側を抜けた直後に echo "\n";
  3. 末尾の空白が気になるなら implode

    <?php
    foreach ($table as $row) {
        echo implode(" ", $row) . "\n";
    }

    実行結果:

    1 2 3
    4 5 6
    7 8 9
    • implode(区切り文字, 配列) で「区切り文字で連結した文字列」を作る
    • 配列の に区切り文字が入るので、末尾には空白が付かない
    • 1 行が短く書ける
  4. カンマ区切り (CSV 風) にもできる

    <?php
    foreach ($table as $row) {
        echo implode(",", $row) . "\n";
    }

    実行結果:

    1,2,3
    4,5,6
    7,8,9
    • 区切り文字を変えるだけで形が変わる
    • "," にすれば CSV 風、"\t" にすればタブ区切り
  5. 行頭・行末を装飾したい場合

    <?php
    foreach ($table as $row) {
        echo "| " . implode(" | ", $row) . " |\n";
    }

    実行結果:

    | 1 | 2 | 3 |
    | 4 | 5 | 6 |
    | 7 | 8 | 9 |
    • 行頭・行末に固定文字を足せばパイプ表もすぐ書ける
    • 整形出力は「1 行ずつ作る」と覚える
  6. このチャプターでできるようになること

    ✅ 内側 foreach + 末尾改行で表を出力できる ✅ implode で 1 行を空白・カンマ区切り文字列にできる ✅ 区切り文字を変えれば CSV / TSV にできる ✅ 行頭・行末に文字を足してパイプ表にできる

    → ドリルへ

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

Lesson 6 / Chapter 5


行 = 改行、列 = 空白区切り

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

実行結果:

1 2 3
4 5 6
7 8 9
  • 内側で空白付きで出力
  • 内側を抜けた直後に echo "\n";

末尾の空白が気になるなら implode

<?php
foreach ($table as $row) {
    echo implode(" ", $row) . "\n";
}

実行結果:

1 2 3
4 5 6
7 8 9
  • implode(区切り文字, 配列) で「区切り文字で連結した文字列」を作る
  • 配列の に区切り文字が入るので、末尾には空白が付かない
  • 1 行が短く書ける

カンマ区切り (CSV 風) にもできる

<?php
foreach ($table as $row) {
    echo implode(",", $row) . "\n";
}

実行結果:

1,2,3
4,5,6
7,8,9
  • 区切り文字を変えるだけで形が変わる
  • "," にすれば CSV 風、"\t" にすればタブ区切り

行頭・行末を装飾したい場合

<?php
foreach ($table as $row) {
    echo "| " . implode(" | ", $row) . " |\n";
}

実行結果:

| 1 | 2 | 3 |
| 4 | 5 | 6 |
| 7 | 8 | 9 |
  • 行頭・行末に固定文字を足せばパイプ表もすぐ書ける
  • 整形出力は「1 行ずつ作る」と覚える

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

✅ 内側 foreach + 末尾改行で表を出力できる ✅ implode で 1 行を空白・カンマ区切り文字列にできる ✅ 区切り文字を変えれば CSV / TSV にできる ✅ 行頭・行末に文字を足してパイプ表にできる

→ ドリルへ

この章で取り組む 演習問題の流れ (1ステップ)
  1. 01 ドリル 01 — 3×3 を表形式で出力 README.md starter.php answer.php

演習問題の詳細

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

ドリル 01 — 3×3 を表形式で出力

問題

次の 3×3 の 2 次元配列が与えられています。

$table = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9],
];

各行の 3 要素を 空白区切り で 1 行に出力してください (全 3 行)。

期待される出力:

1 2 3
4 5 6
7 8 9

ヒント

  • foreach ($table as $row) { echo implode(" ", $row) . "\n"; }
  • 末尾空白を入れたくないので implode が便利

🧪 ブラウザで試す

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

PHP ランタイム未読込

          

        

演習問題(1問)

  1. ドリル 01 — 3×3 を表形式で出力

    README.md starter.php answer.php

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

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