採点されません。匿名です。 間違えることは学習の一部です。読むだけでもかまいません。

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
行 0123
行 1456
行 2789
  • 外側の添字 = 行
  • 内側の添字 = 列

このチャプターでできるようになること

✅ 配列の中に配列を入れた 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)」 = 右下