連想配列を編集する
テクノロジ系 / array-assoc (連想配列・foreach・ソート)
連想配列を編集する
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 で「キーがあるか」を判定できる
→ ドリルへ
考えてみよう
既定では正解・不正解の判定はしません。自分のペースで「答えを見る」を。採点してほしい場合だけ「採点してほしい」を押してください。
ドリル 01 — 連想配列に新キーを追加
問題
以下の連想配列が与えられています。
$person = [
'name' => '太郎',
'age' => 20,
];ここに 'city' => '東京' を追加し、その後 name / age / city の順に値を 1 行ずつ出力してください。
期待される出力:
太郎 20 東京
採点
php scripts/grade.php topics/array-assoc/ch02-assoc-modify/drill/01-add/
ヒント
$person['city'] = '東京';で追加できる- その後 3 回
echoするだけ
ドリル 02 — 既存キーの上書き
問題
以下の連想配列が与えられています。
$person = [
'name' => '太郎',
'age' => 20,
];age の値を 21 に書き換え、name と age をこの順で 1 行ずつ出力してください。
期待される出力:
太郎 21
採点
php scripts/grade.php topics/array-assoc/ch02-assoc-modify/drill/02-overwrite/
ヒント
- 既存キーに代入すると上書きされる
$person['age'] = 21;