2 次元配列を作る
テクノロジ系 / array-multi (多次元配列・オブジェクトリスト・CSV)
2 次元配列を作る
Lesson 6 / Chapter 1
配列の中に配列を入れられる
<?php $row1 = [1, 2, 3]; $row2 = [4, 5, 6]; $row3 = [7, 8, 9]; $table = [$row1, $row2, $row3]; print_r($table);
- 配列の要素として 別の配列 をそのまま入れられる
- これを 2 次元配列 と呼ぶ
- 「表 (行 × 列)」を 1 つの変数で表現できる
直接ネストして書ける
<?php
$table = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
];
print_r($table);実行結果 (抜粋):
Array
(
[0] => Array ( [0] => 1 [1] => 2 [2] => 3 )
[1] => Array ( [0] => 4 [1] => 5 [2] => 6 )
[2] => Array ( [0] => 7 [1] => 8 [2] => 9 )
)[ ]の中にさらに[ ]を並べる- 1 行を 1 つの内側配列にすると読みやすい
形は揃えなくても動く (が揃えるのが普通)
<?php
$jagged = [
[1, 2],
[3, 4, 5, 6],
[7],
];- 内側の配列は長さが違っても動く
- ただし「表」として扱うなら全行同じ長さにしておくのが安全
- 後の章で扱う「行ごとの合計」「列ごとの合計」は長さが揃っている前提
行と列のイメージ
$table = [
[1, 2, 3], // 0 行目
[4, 5, 6], // 1 行目
[7, 8, 9], // 2 行目
];| 列 0 | 列 1 | 列 2 | |
|---|---|---|---|
| 行 0 | 1 | 2 | 3 |
| 行 1 | 4 | 5 | 6 |
| 行 2 | 7 | 8 | 9 |
- 外側の添字 = 行
- 内側の添字 = 列
このチャプターでできるようになること
✅ 配列の中に配列を入れた 2 次元配列を書ける
✅ [[1,2],[3,4]] の形を読める
✅ 外側を行、内側を列として捉えられる
✅ print_r で 2 次元配列の中身を確認できる
→ ドリルへ
考えてみよう
既定では正解・不正解の判定はしません。自分のペースで「答えを見る」を。採点してほしい場合だけ「採点してほしい」を押してください。
ドリル 01 — 2×2 配列を作る
問題
2×2 の 2 次元配列を 1 つ作り、$arr[0][0] の値を出力してください。
配列の中身は次の通りにしてください:
[
[10, 20],
[30, 40],
]期待される出力:
10
採点
php scripts/grade.php topics/array-multi/ch01-2d-create/drill/01-2x2/
ヒント
$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
採点
php scripts/grade.php topics/array-multi/ch01-2d-create/drill/02-3x3/
ヒント
- 外側 3 個、内側 3 個ずつで
[ [...], [...], [...] ] $arr[2][2]は「3 行目 (添字 2) の 3 列目 (添字 2)」 = 右下