概要
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 行出力 |
📝 演習: ドリル 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が便利