概要

2 次元配列の要素を 書き換える 書き方は、アクセスの構文 ($arr[行][列]) の 左辺に代入する だけ。$table[1][1] = 99; と書けば 1 行 1 列目のマスが 99 に更新される。1 次元配列の $arr[0] = 値 の発想をそのまま入れ子にしただけなので、ch02 までを通った後なら自然に書ける。

ポイントは「書き換えた後の値は、以降の処理で読むと新しい値になっている」という当たり前の挙動を体感すること。$table[1][1] = 99; の後に echo $table[1][1]; をすれば 99 が出る。代入は その場で 2 次元配列の中身を破壊的に変える ので、元の値を残したい場合はコピーを取る必要がある。

存在しない添字に代入すると 新しい要素が追加される ($table[3][0] = 0; のように 3 行目を新設できる)。これは便利だが、表として揃った状態を期待している後段の処理 (ch06 行合計 / ch07 列合計) を壊しやすいので、「表の形を保つ」ことを意識しながら更新する。中央のマス $table[1][1] だけを書き換えるドリルで、行・列の指定がぶれないことを確かめる。

学習目標

ドリル

no 内容
01 3×3 配列の中央 ($arr[1][1]) を書き換えて出力

演習: ドリル 01 — 中央のマスを書き換える

問題

次の 3×3 の 2 次元配列が与えられています。

$table = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9],
];

中央 ($table[1][1]) を 99 に書き換えてから、配列の中身を 1 行 1 マスずつ 上から順に出力してください。

期待される出力:

1
2
3
4
99
6
7
8
9

ヒント

この章を AI に聞く

  1. 「ch03 — 2 次元配列の要素を書き換える」のつまずきやすいポイントを、初学者向けに3つ教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

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

    💬 ChatGPT 📘 Claude ✨ Gemini

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

    💬 ChatGPT 📘 Claude ✨ Gemini

🎉 受講お疲れさまでした!

ch03 — 2 次元配列の要素を書き換える」を読み終えました。
学んだことを誰かに教えると、もっと記憶に残ります。

X で共有 Hatena LINE