表形式で整形出力
テクノロジ系 / 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が便利