ch01 12章中 1章目

ch01 — 2 次元配列を作る

スライドで見る

この章を AI と学ぶ

💬 AI に聞く質問例 3 件
  1. 「ch01 — 2 次元配列を作る」のつまずきやすいポイントを、初学者向けに3つ教えてください

    ChatGPT Claude Gemini

  2. 「ch01 — 2 次元配列を作る」について、自分の手で試せる練習問題を3つ出してください (難易度を上げながら)

    ChatGPT Claude Gemini

  3. 「ch01 — 2 次元配列を作る」を学んだ後、次に学ぶと良いトピックは何ですか?理由も教えてください

    ChatGPT Claude Gemini

概要

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] を出力

解説スライド 全 6 枚

右の ボタン キー(またはスワイプ)で次のスライドに進めます。 下の「縦表示」を開くと全スライドを一気に読めます。

  1. 2 次元配列を作る

    Lesson 6 / Chapter 1

  2. 配列の中に配列を入れられる

    <?php
    $row1 = [1, 2, 3];
    $row2 = [4, 5, 6];
    $row3 = [7, 8, 9];
    $table = [$row1, $row2, $row3];
    print_r($table);
    • 配列の要素として 別の配列 をそのまま入れられる
    • これを 2 次元配列 と呼ぶ
    • 「表 (行 × 列)」を 1 つの変数で表現できる
  3. 直接ネストして書ける

    <?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 つの内側配列にすると読みやすい
  4. 形は揃えなくても動く (が揃えるのが普通)

    <?php
    $jagged = [
        [1, 2],
        [3, 4, 5, 6],
        [7],
    ];
    • 内側の配列は長さが違っても動く
    • ただし「表」として扱うなら全行同じ長さにしておくのが安全
    • 後の章で扱う「行ごとの合計」「列ごとの合計」は長さが揃っている前提
  5. 行と列のイメージ

    $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
    • 外側の添字 = 行
    • 内側の添字 = 列
  6. このチャプターでできるようになること

    ✅ 配列の中に配列を入れた 2 次元配列を書ける ✅ [[1,2],[3,4]] の形を読める ✅ 外側を行、内側を列として捉えられる ✅ print_r で 2 次元配列の中身を確認できる

    → ドリルへ

1 / 6
📜 スライドを全部一気に読む(縦表示)

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 次元配列の中身を確認できる

→ ドリルへ

この章で取り組む 演習問題の流れ (2ステップ)
  1. 01 ドリル 01 — 2×2 配列を作る README.md starter.php answer.php
  2. 02 ドリル 02 — 3×3 配列を作る README.md starter.php answer.php

演習問題の詳細

この章の演習問題の内容を読めます。実際に手元で解くには教材リポジトリを clone してください。

ドリル 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"; で左上の値を出力

🧪 ブラウザで試す

スライドのコードを写経して ▶ 実行、自分で書いて 📝 採点 で答え合わせ。初回のみ PHP ランタイム読込で数秒かかります。

PHP ランタイム未読込

          

        

ドリル 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)」 = 右下

🧪 ブラウザで試す

スライドのコードを写経して ▶ 実行、自分で書いて 📝 採点 で答え合わせ。初回のみ PHP ランタイム読込で数秒かかります。

PHP ランタイム未読込

          

        

演習問題(2問)

  1. ドリル 01 — 2×2 配列を作る

    README.md starter.php answer.php

  2. ドリル 02 — 3×3 配列を作る

    README.md starter.php answer.php

サイト内で問題文・雛形・解答例を確認できます。実際に手元で解くには教材リポジトリを clone してください。

完了にすると進捗に反映されます