概要
ここまでは「数値添字 × 数値添字」の 2 次元配列 (純粋な表) を扱ってきたが、実務で出てくるデータの多くは 連想配列の中に配列を入れた 構造になる。$data = ['users' => [...], 'count' => 3] のように、キー (文字列) を使って意味のある名前で内側のデータにたどり着く 形だ。これは JSON / API レスポンス / 設定ファイル の典型構造そのもので、Web 開発を始めるとほぼ毎日触ることになる。
アクセスは $data['users'][0] のように キーと添字を交互にたどる。「'users' で配列を取り出し → その [0] 番目を取り出す」という 2 段階で、ch02 の $table[行][列] と発想は同じ。違うのは「外側が文字列キー、内側が数値添字」のように キーの種類が混在する こと。ネストはさらに深くなることもあり、$data['users'][0]['name'] のように 3 段・4 段とたどる場面も普通に出てくる。
このパターンを読めるかどうかが、JSON を返す API を扱えるかの分水嶺。json_decode($json, true) の戻り値はまさにこの形 (連想配列の入れ子) なので、ch08 で形に慣れておくと外部 API との連携がぐっと楽になる。「外側を文字列キーで開けて、中の数値添字配列を foreach で回す」が一番よく使うパターン。
学習目標
$data['users'] = [...]のように連想配列の値に配列を持たせられる$data['users'][0]の形でネストした要素にアクセスできる- キー (文字列) と添字 (整数) を交互にたどるイメージを持つ
ドリル
| no | 内容 |
|---|---|
| 01 | $data['users'][0] を出力 |
📝 演習: ドリル 01 — 連想配列の中の配列にアクセス
問題
次のデータが与えられています。
$data = [
'users' => ["太郎", "花子", "次郎"],
'count' => 3,
];$data['users'] の最初の要素 (太郎) を出力してください。
期待される出力:
太郎ヒント
$data['users']で配列を取り出す- そのあと
[0]で 0 番目 - まとめて
echo $data['users'][0] . "\n";