採点されません。匿名です。 間違えることは学習の一部です。読むだけでもかまいません。

表形式で整形出力

テクノロジ系 / array-multi (多次元配列・オブジェクトリスト・CSV)

表形式で整形出力

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 にできる

✅ 行頭・行末に文字を足してパイプ表にできる

→ ドリルへ

考えてみよう

既定では正解・不正解の判定はしません。自分のペースで「答えを見る」を。採点してほしい場合だけ「採点してほしい」を押してください。

ドリル 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

採点

php scripts/grade.php topics/array-multi/ch05-table-print/drill/01-table/

ヒント

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