概要
2 次元配列 とは、配列の要素にさらに配列を入れた構造のこと。[[1, 2, 3], [4, 5, 6], [7, 8, 9]] のように [ ] をネストして書くことで、表 (行 × 列) や グリッド、碁盤の目 のような 2 軸のデータを 1 つの変数で表現できる。これまで扱ってきた 1 次元の配列が「リスト」だとすれば、2 次元配列は「シート」や「マス目」のイメージ。
この章では「配列の中に配列を入れる」というシンプルな考え方を体に染み込ませる。$row1 = [1, 2, 3] のような行を 3 本作って [$row1, $row2, $row3] でまとめる書き方と、最初から [[1,2,3], [4,5,6], [7,8,9]] とネストして書く書き方の両方を扱う。後者がよく使われる形だが、最初は前者で「ただの配列の要素として配列を入れているだけ」と理解するほうが腹落ちしやすい。
内側の配列は 長さが違っても動く が、後の章 (ch06 行合計 / ch07 列合計 / ch11 CSV) では「全行同じ長さ」を前提に処理を組み立てる。だからこの章で「表として扱うなら全行同じ列数」という暗黙の約束を意識しておく。print_r で中身を出すと 入れ子になった構造 が文字列で見えるので、形を確認しながら進める。
学習目標
- 配列の中に配列を入れた「2 次元配列」を作れる
[[1, 2], [3, 4]]のような書き方を読める- 2 次元配列が「表 (行 × 列)」を表せると理解する
ドリル
| no | 内容 |
|---|---|
| 01 | 2×2 の 2 次元配列を作って $arr[0][0] を出力 |
| 02 | 3×3 の 2 次元配列を作って $arr[2][2] を出力 |
📝 演習: ドリル 01 — 2×2 配列を作る
問題
2×2 の 2 次元配列を 1 つ作り、$arr[0][0] の値を出力してください。
配列の中身は次の通りにしてください:
[
[10, 20],
[30, 40],
]
期待される出力:
10ヒント
$arr = [[10, 20], [30, 40]];で 2×2 を作れるecho $arr[0][0] . "\n";で左上の値を出力
📝 演習: ドリル 02 — 3×3 配列を作る
問題
3×3 の 2 次元配列を 1 つ作り、$arr[2][2] の値を出力してください。
配列の中身は次の通りにしてください:
[
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
]
期待される出力:
9ヒント
- 外側 3 個、内側 3 個ずつで
[ [...], [...], [...] ] $arr[2][2]は「3 行目 (添字 2) の 3 列目 (添字 2)」 = 右下