採点されません。匿名です。 間違えることは学習の一部です。読むだけでもかまいません。

連想配列の配列

テクノロジ系 / 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"; }