ch03 8章中 3章目

ch03 — 配列を書き換える

スライドで見る

この章を AI と学ぶ

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

    ChatGPT Claude Gemini

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

    ChatGPT Claude Gemini

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

    ChatGPT Claude Gemini

概要

配列は「作って終わり」では使い物にならない。実務では 作った後に値を入れ替える・追加する・削除する ことが本番で、入力データに応じて配列を組み立てたり、結果を集めて配列に詰めたりする処理が圧倒的に多い。この章では「すでにある配列に手を加える」ための 3 つの基本操作 (書き換え・末尾追加・削除) をまとめて覚える。

書き換えは $arr[1] = "X" のように 添字アクセスの左辺に値を代入 するだけ。これで既存の要素が新しい値に置き換わる。新しい要素を末尾に足したい場合は $arr[] = "X" と書く。添字を省略した書き方で、PHP は自動的に「現在の最大添字 + 1」に値を入れてくれる。これは シンタックスシュガー (省略記法) で、配列に値を流し込むループでよく出てくる。

削除は少し特殊で、unset($arr[1]) を使う。注意点は 削除しても残った要素の添字が詰められない こと。[10, 20, 30] から unset($arr[1]) すると、結果は [0 => 10, 2 => 30] となり、1 の位置がそのまま欠番になる。print_r で見ると「あれ、1 がない」と驚くが、これは PHP の配列が内部的にキーと値のペアで動いている (前章の「整数添字も連想配列の一種」) ことの帰結だ。

学習目標

  • $arr[0] = X で既存の要素を書き換えられる
  • $arr[] = X で配列の末尾に追加できる
  • 空の配列から始めて要素を組み立てられる

ドリル

no 内容
01 $arr[1] の値を書き換えて全要素を print_r で表示
02 $arr[] = X で末尾に値を追加して print_r で表示
03 空配列から for ループで要素を組み立てて print_r で表示

解説スライド 全 6 枚

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

  1. 配列を書き換える

    Lesson 4 / Chapter 3

  2. 既存の要素を書き換える

    <?php
    $nums = [10, 20, 30];
    $nums[1] = 99;
    
    print_r($nums);

    実行結果:

    Array
    (
        [0] => 10
        [1] => 99
        [2] => 30
    )
    • $arr[添字] = 値;その位置の値を書き換える
    • 元の値は失われる
  3. 末尾に追加する $arr[] = X

    <?php
    $nums = [10, 20, 30];
    $nums[] = 40;
    $nums[] = 50;
    
    print_r($nums);

    実行結果:

    Array
    (
        [0] => 10
        [1] => 20
        [2] => 30
        [3] => 40
        [4] => 50
    )
    • $arr[] = 値;空の添字で代入 = 末尾追加
    • 添字は自動的に割り当てられる
  4. 空の配列から組み立てる

    <?php
    $nums = [];
    
    $nums[] = 1;
    $nums[] = 2;
    $nums[] = 3;
    
    print_r($nums);
    • $nums = []; で空の配列を作る
    • そこから 1 個ずつ $nums[] = ... で追加していく
    • ループと組み合わせるときの基本パターン
  5. ループで配列を組み立てる

    <?php
    $squares = [];
    for ($i = 1; $i <= 5; $i++) {
        $squares[] = $i * $i;
    }
    
    print_r($squares);

    実行結果:

    Array
    (
        [0] => 1
        [1] => 4
        [2] => 9
        [3] => 16
        [4] => 25
    )
    • 計算結果を 1 つずつ末尾に追加していく定番の形
  6. このチャプターでできるようになること

    $arr[i] = X で既存の要素を書き換えられる ✅ $arr[] = X で末尾に追加できる ✅ 空の配列 [] から始めて要素を組み立てられる ✅ for ループで配列を作れる

    → ドリルへ

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

Lesson 4 / Chapter 3


既存の要素を書き換える

<?php
$nums = [10, 20, 30];
$nums[1] = 99;

print_r($nums);

実行結果:

Array
(
    [0] => 10
    [1] => 99
    [2] => 30
)
  • $arr[添字] = 値;その位置の値を書き換える
  • 元の値は失われる

末尾に追加する $arr[] = X

<?php
$nums = [10, 20, 30];
$nums[] = 40;
$nums[] = 50;

print_r($nums);

実行結果:

Array
(
    [0] => 10
    [1] => 20
    [2] => 30
    [3] => 40
    [4] => 50
)
  • $arr[] = 値;空の添字で代入 = 末尾追加
  • 添字は自動的に割り当てられる

空の配列から組み立てる

<?php
$nums = [];

$nums[] = 1;
$nums[] = 2;
$nums[] = 3;

print_r($nums);
  • $nums = []; で空の配列を作る
  • そこから 1 個ずつ $nums[] = ... で追加していく
  • ループと組み合わせるときの基本パターン

ループで配列を組み立てる

<?php
$squares = [];
for ($i = 1; $i <= 5; $i++) {
    $squares[] = $i * $i;
}

print_r($squares);

実行結果:

Array
(
    [0] => 1
    [1] => 4
    [2] => 9
    [3] => 16
    [4] => 25
)
  • 計算結果を 1 つずつ末尾に追加していく定番の形

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

$arr[i] = X で既存の要素を書き換えられる ✅ $arr[] = X で末尾に追加できる ✅ 空の配列 [] から始めて要素を組み立てられる ✅ for ループで配列を作れる

→ ドリルへ

この章で取り組む 演習問題の流れ (3ステップ)
  1. 01 ドリル 01 — 要素を書き換える README.md starter.php answer.php
  2. 02 ドリル 02 — 末尾に追加 README.md starter.php answer.php
  3. 03 ドリル 03 — for ループで組み立てる README.md starter.php answer.php

演習問題の詳細

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

ドリル 01 — 要素を書き換える

問題

配列 [10, 20, 30] の添字 1 の値を 99 に書き換え、print_r で中身を表示してください。

期待される出力:

Array
(
    [0] => 10
    [1] => 99
    [2] => 30
)

ヒント

  • $nums = [10, 20, 30];
  • $nums[1] = 99;
  • print_r($nums);

🧪 ブラウザで試す

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

PHP ランタイム未読込

          

        

ドリル 02 — 末尾に追加

問題

配列 [10, 20, 30] に対して、$arr[] = 40;$arr[] = 50; で末尾に 2 つ追加し、print_r で中身を表示してください。

期待される出力:

Array
(
    [0] => 10
    [1] => 20
    [2] => 30
    [3] => 40
    [4] => 50
)

ヒント

  • $nums = [10, 20, 30];
  • $nums[] = 40;
  • $nums[] = 50;
  • print_r($nums);

🧪 ブラウザで試す

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

PHP ランタイム未読込

          

        

ドリル 03 — for ループで組み立てる

問題

空の配列から始めて、for ループで 1 から 5 までの値を順に末尾追加し、print_r で中身を表示してください。

期待される出力:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

ヒント

  • $nums = [];
  • for ($i = 1; $i <= 5; $i++) { $nums[] = $i; }
  • print_r($nums);

🧪 ブラウザで試す

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

PHP ランタイム未読込

          

        

演習問題(3問)

  1. ドリル 01 — 要素を書き換える

    README.md starter.php answer.php

  2. ドリル 02 — 末尾に追加

    README.md starter.php answer.php

  3. ドリル 03 — for ループで組み立てる

    README.md starter.php answer.php

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

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