概要
2 次元配列を作ったら、次は 特定の要素を取り出す ところを覚える。書き方は $table[行][列] のように 添字を 2 つ並べる だけ。1 つ目の添字で外側の配列 (どの行か) を取り出し、2 つ目の添字でその行の中の何番目かを取り出す、という 外側 → 内側 の順に読むのがコツ。
$table[1][2] は「$table[1] で 1 行目の配列 [4, 5, 6] を取り出し → その [2] 番目で 6 を取り出す」と 2 段階で考えると迷わない。四隅を取り出す $table[0][0] (左上) / $table[0][2] (右上) / $table[2][0] (左下) / $table[2][2] (右下) のような典型パターンを手で書くと、「行と列の番号 = 添字」が体に入る。
存在しない添字を指定すると null が返り、PHP 8 系では Warning: Undefined array key も出る。事故を防ぐには count($table) で行数、count($table[0]) で列数 (1 行目基準) を意識して書く。この「範囲外アクセス」の感覚は、後の章で foreach に置き換える時にも生きてくる。
学習目標
$arr[行][列]で任意の要素を取り出せる- 添字は外側 → 内側の順だと分かる
- 四隅・特定の行・特定の列を 1 個ずつ取り出せる
- 範囲外アクセスが
null+ Warning になると知っている
ドリル
| no | 内容 |
|---|---|
| 01 | 3×3 配列の四隅 (左上 → 右上 → 左下 → 右下) を 1 行ずつ出力 |
| 02 | 3×3 配列の 2 行目 (添字 1) の 3 要素を 1 行ずつ出力 |
📝 演習: ドリル 01 — 四隅を出力する
問題
次の 3×3 の 2 次元配列が与えられています。
$table = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
];この配列の四隅 (左上 → 右上 → 左下 → 右下) を 1 行ずつ出力してください。
期待される出力:
1
3
7
9ヒント
- 左上 =
$table[0][0] - 右上 =
$table[0][2] - 左下 =
$table[2][0] - 右下 =
$table[2][2]
📝 演習: ドリル 02 — 1 行分を出力する
問題
次の 3×3 の 2 次元配列が与えられています。
$table = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
];2 行目 (添字 1) の 3 要素を 1 行ずつ順に出力してください。
期待される出力:
4
5
6ヒント
- 2 行目は添字
1 $table[1][0],$table[1][1],$table[1][2]を 1 行ずつ出力