連想配列の配列
テクノロジ系 / array-multi (多次元配列・オブジェクトリスト・CSV)
連想配列の配列
Lesson 6 / Chapter 9
「1 件 = 連想配列」を並べた形
<?php
$users = [
['name' => '太郎', 'age' => 20],
['name' => '花子', 'age' => 25],
['name' => '次郎', 'age' => 18],
];- 外側 = 普通の配列 (0, 1, 2, ... の添字)
- 各要素 = 連想配列 (1 人分の情報)
- DB の検索結果や JSON API のレスポンスでよく出てくる形
$users[0] は連想配列
print_r($users[0]);
実行結果:
Array
(
[name] => 太郎
[age] => 20
)$users[0]を取り出すと 1 人分の連想配列- そこからさらに
['name']['age']でキーアクセス - まとめて:
$users[0]['name']→"太郎"
foreach で 1 件ずつ取り出す
<?php
foreach ($users as $user) {
echo $user['name'] . "\n";
}実行結果:
太郎 花子 次郎
$userには 1 件分の連想配列が入る$user['name']でその件の名前を取り出す- これがオブジェクトリスト走査の基本形
複数のキーを同時に取り出すことも多い
<?php
foreach ($users as $user) {
echo $user['name'] . " (" . $user['age'] . "歳)\n";
}実行結果:
太郎 (20歳) 花子 (25歳) 次郎 (18歳)
- 「名前と年齢を一覧表示」のような用途
- 1 件分の
$userから複数キーをまとめて使う
このチャプターでできるようになること
✅ [['name'=>..., 'age'=>...], ...] の形を書ける・読める
✅ $users[0]['name'] でネストアクセスできる
✅ foreach ($users as $user) で 1 件ずつ取り出せる
✅ 複数キーを同時に組み合わせて出力できる
→ ドリルへ
考えてみよう
既定では正解・不正解の判定はしません。自分のペースで「答えを見る」を。採点してほしい場合だけ「採点してほしい」を押してください。
ドリル 01 — 全員の名前を出力
問題
次のデータが与えられています。
$users = [
['name' => '太郎', 'age' => 20],
['name' => '花子', 'age' => 25],
['name' => '次郎', 'age' => 18],
];foreach を使って、全員の名前を 1 行ずつ上から順に出力してください。
期待される出力:
太郎 花子 次郎
採点
php scripts/grade.php topics/array-multi/ch09-objects-list/drill/01-list-names/
ヒント
foreach ($users as $user) { echo $user['name'] . "\n"; }