連想配列を作る
テクノロジ系 / array-assoc (連想配列・foreach・ソート)
連想配列を作る
Lesson 5 / Chapter 1
添字配列だけだと「何の値か」が分かりにくい
<?php $person = ["太郎", 20, "東京"]; echo $person[0]; // 太郎 echo $person[1]; // 20 echo $person[2]; // 東京
[0]が名前、[1]が年齢…と覚えるのは大変- 連想配列 なら「名前」「年齢」「都市」のように キー を付けられる
'キー' => 値 で連想配列を作る
<?php
$person = [
'name' => '太郎',
'age' => 20,
];
print_r($person);実行結果:
Array
(
[name] => 太郎
[age] => 20
)=>の左が キー、右が 値- キーは文字列で書くのが基本
$arr['キー'] で値を取り出す
<?php
$person = [
'name' => '太郎',
'age' => 20,
];
echo $person['name'] . "\n"; // 太郎
echo $person['age'] . "\n"; // 20- 添字配列の
$nums[0]と同じ感覚で、添字の代わりにキーを書く - 存在しないキーを指定すると
Warningが出る
改行を入れて読みやすく書ける
<?php
$person = [
'name' => '太郎',
'age' => 20,
'city' => '東京',
];- 1 つのキーずつ改行
- 末尾の要素にも
,を付けてよい (PHP では推奨) =>の位置を揃えると見やすい
このチャプターでできるようになること
✅ ['key' => 値] で連想配列を作れる
✅ $arr['key'] で値を取り出せる
✅ print_r で中身を確認できる
✅ 複数キーを改行で並べて書ける
→ ドリルへ
考えてみよう
既定では正解・不正解の判定はしません。自分のペースで「答えを見る」を。採点してほしい場合だけ「採点してほしい」を押してください。
ドリル 01 — name キーだけの連想配列
問題
キー name、値 太郎 を持つ連想配列を作り、$arr['name'] で値を取り出して 1 行出力してください。
期待される出力:
太郎
採点
php scripts/grade.php topics/array-assoc/ch01-assoc-basic/drill/01-single/
ヒント
$person = ['name' => '太郎'];echo $person['name'] . "\n";
ドリル 02 — 3 つのキーを出力
問題
以下のキーと値を持つ連想配列を作ってください。
| キー | 値 |
|---|---|
| name | 太郎 |
| age | 20 |
| city | 東京 |
name, age, city の順に値を 1 行ずつ出力してください。
期待される出力:
太郎 20 東京
採点
php scripts/grade.php topics/array-assoc/ch01-assoc-basic/drill/02-multiple/
ヒント
['name' => '太郎', 'age' => 20, 'city' => '東京']のように 3 キー入れるecho $arr['name'] . "\n";を 3 回書けば OK
ドリル 03 — 標準入力から連想配列を組む
問題
標準入力から キー=値 形式の文字列が 2 行入力されます。
これを連想配列に格納し、キー name の値と age の値をこの順で 1 行ずつ出力してください。
入力例:
name=太郎 age=20
期待される出力:
太郎 20
採点
php scripts/grade.php topics/array-assoc/ch01-assoc-basic/drill/03-from-input/
ヒント
- 2 行ループで
$line = trim(fgets(STDIN)); explode('=', $line)でキーと値に分割[0]がkey、[1]がvalue$person[$key] = $value;で連想配列に追加