ch02 8章中 2章目

ch02 — 連想配列の追加・書き換え・削除

スライドで見る

この章を AI と学ぶ

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

    ChatGPT Claude Gemini

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

    ChatGPT Claude Gemini

  3. 「ch02 — 連想配列の追加・書き換え・削除」を学んだ後、次に学ぶと良いトピックは何ですか?理由も教えてください

    ChatGPT Claude Gemini

概要

連想配列は 作って終わり ではなく、プログラムの途中でキーを増やしたり、値を書き換えたり、不要になったキーを消したりして「育てていく」のが普通の使い方になる。たとえばユーザー情報を持つ $user 連想配列に、ログイン時刻を後から $user['last_login'] として追加する、というような場面だ。

操作は 3 つの構文を押さえれば足りる。追加$arr['new_key'] = 値 で代入するだけ (新しいキーが自動で作られる)、書き換え は同じ書式を 既存キーに対して 行うだけ (値が上書きされる)、削除unset($arr['key']) でキーごと消す。unset は変数を「未定義の状態に戻す」関数で、$arr['key'] = null とは違ってキーそのものが配列から消える点に注意したい。

もう 1 つ覚えておきたい性質が 挿入順が保たれる こと。PHP の連想配列は内部的に「順序付きハッシュ」として実装されていて、最初に入れたキーから順に foreach で出てくる。途中の unset で穴があいても残ったキーの並び順は崩れない。この章のドリルは追加・上書き・削除の 3 本立てで、その後の foreach 章で「どの順番で出てくるか」を実感する前提を作る。

学習目標

  • $arr['key'] = 値 で新しいキーを追加できる
  • 既存キーに同じ書式で代入すると値が上書きされることを理解する
  • unset($arr['key']) でキーごと削除できる

ドリル

no 内容
01 既存連想配列に新しいキーを追加
02 既存キーの値を上書き
03 unset でキーを削除

解説スライド 全 6 枚

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

  1. 連想配列を編集する

    Lesson 5 / Chapter 2

  2. 新しいキーは $arr['キー'] = 値 で追加できる

    <?php
    $person = ['name' => '太郎'];
    $person['age'] = 20;
    
    print_r($person);

    実行結果:

    Array
    (
        [name] => 太郎
        [age] => 20
    )
    • 存在しないキーに代入すると 新しい要素が増える
    • [] を空にすると 添字配列の追加 (L4) になるので注意
  3. 既存キーに代入すると 上書き

    <?php
    $person = [
        'name' => '太郎',
        'age'  => 20,
    ];
    
    $person['age'] = 21; // 上書き
    
    echo $person['age'] . "\n"; // 21
    • 同じキーに代入すると元の値は消える
    • 「追加」と「上書き」は構文が同じ → 既存キーかどうかで挙動が変わる
  4. unset($arr['キー']) でキーごと削除

    <?php
    $person = [
        'name' => '太郎',
        'age'  => 20,
        'city' => '東京',
    ];
    
    unset($person['age']);
    
    print_r($person);

    実行結果:

    Array
    (
        [name] => 太郎
        [city] => 東京
    )
    • unset はキーと値をまとめて消す
    • 存在しないキーを unset してもエラーにはならない
  5. 「キーが存在するか」は isset で確認

    <?php
    $person = ['name' => '太郎'];
    
    if (isset($person['age'])) {
        echo "age あり\n";
    } else {
        echo "age なし\n";
    }
    • 存在しないキーを $arr['key'] でいきなり読むと Warning
    • 先に isset でチェックするのが安全
  6. このチャプターでできるようになること

    $arr['key'] = 値 で追加できる ✅ 既存キーへの代入は上書きになると理解 ✅ unset でキーを削除できる ✅ isset で「キーがあるか」を判定できる

    → ドリルへ

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

Lesson 5 / Chapter 2


新しいキーは $arr['キー'] = 値 で追加できる

<?php
$person = ['name' => '太郎'];
$person['age'] = 20;

print_r($person);

実行結果:

Array
(
    [name] => 太郎
    [age] => 20
)
  • 存在しないキーに代入すると 新しい要素が増える
  • [] を空にすると 添字配列の追加 (L4) になるので注意

既存キーに代入すると 上書き

<?php
$person = [
    'name' => '太郎',
    'age'  => 20,
];

$person['age'] = 21; // 上書き

echo $person['age'] . "\n"; // 21
  • 同じキーに代入すると元の値は消える
  • 「追加」と「上書き」は構文が同じ → 既存キーかどうかで挙動が変わる

unset($arr['キー']) でキーごと削除

<?php
$person = [
    'name' => '太郎',
    'age'  => 20,
    'city' => '東京',
];

unset($person['age']);

print_r($person);

実行結果:

Array
(
    [name] => 太郎
    [city] => 東京
)
  • unset はキーと値をまとめて消す
  • 存在しないキーを unset してもエラーにはならない

「キーが存在するか」は isset で確認

<?php
$person = ['name' => '太郎'];

if (isset($person['age'])) {
    echo "age あり\n";
} else {
    echo "age なし\n";
}
  • 存在しないキーを $arr['key'] でいきなり読むと Warning
  • 先に isset でチェックするのが安全

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

$arr['key'] = 値 で追加できる ✅ 既存キーへの代入は上書きになると理解 ✅ unset でキーを削除できる ✅ isset で「キーがあるか」を判定できる

→ ドリルへ

この章で取り組む 演習問題の流れ (2ステップ)
  1. 01 ドリル 01 — 連想配列に新キーを追加 README.md starter.php answer.php
  2. 02 ドリル 02 — 既存キーの上書き README.md starter.php answer.php

演習問題の詳細

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

ドリル 01 — 連想配列に新キーを追加

問題

以下の連想配列が与えられています。

$person = [
    'name' => '太郎',
    'age'  => 20,
];

ここに 'city' => '東京' を追加し、その後 name / age / city の順に値を 1 行ずつ出力してください。

期待される出力:

太郎
20
東京

ヒント

  • $person['city'] = '東京'; で追加できる
  • その後 3 回 echo するだけ

🧪 ブラウザで試す

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

PHP ランタイム未読込

          

        

ドリル 02 — 既存キーの上書き

問題

以下の連想配列が与えられています。

$person = [
    'name' => '太郎',
    'age'  => 20,
];

age の値を 21 に書き換え、nameage をこの順で 1 行ずつ出力してください。

期待される出力:

太郎
21

ヒント

  • 既存キーに代入すると上書きされる
  • $person['age'] = 21;

🧪 ブラウザで試す

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

PHP ランタイム未読込

          

        

演習問題(2問)

  1. ドリル 01 — 連想配列に新キーを追加

    README.md starter.php answer.php

  2. ドリル 02 — 既存キーの上書き

    README.md starter.php answer.php

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

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