章: 第2章: 配列とデータ処理
ユーザー一覧・商品リスト・注文履歴——実務データは必ず入れ子になっています
データベースから取得したユーザー一覧は「複数のユーザー情報(連想配列)が並んだ配列」です。この「配列の中に配列」が多次元配列です。構造を把握していないと値の取得で迷いますが、パターンを覚えると一気に扱いやすくなります。
まずコードを動かしてみる
<?php
$users = [
['name' => 'A', 'age' => 20],
['name' => 'B', 'age' => 25],
];
echo $users[1]['name'];
$users[1]['name'] で2番目のユーザーの名前を取得しています。添字と連想配列のキーを組み合わせてアクセスします。
多次元配列の構造比較
| 構造 | 用途 | アクセス例 |
| 添字配列の配列 | 同種データのリスト(スコア一覧など) | $arr[0][1] |
| 連想配列の配列 | レコードのリスト(ユーザー一覧など) | $arr[0]['name'] |
| 連想配列の連想配列 | ネスト構造(設定ファイルなど) | $arr['db']['host'] |
悪い例(構造を把握せずにアクセスして失敗)
<?php
$users = [
['name' => 'A', 'age' => 20],
['name' => 'B', 'age' => 25],
];
echo $users['name']; // Notice: 添字配列にキーでアクセスしてしまっている
良い例(print_rで構造を確認してからアクセス)
<?php
$users = [
['name' => 'A', 'age' => 20],
['name' => 'B', 'age' => 25],
];
print_r($users); // 構造を確認
foreach ($users as $user) {
echo $user['name'] . ': ' . $user['age'] . PHP_EOL;
}
チェックポイント: 多次元配列で迷ったら必ず
print_r()かvar_dump()で全体構造を先に表示しましょう。「何階層あるか」「キーは文字列か数値か」を視覚的に確認してからアクセスすると、エラーが大幅に減ります。
まとめ & 次のステップ
- 多次元配列は「配列の中に配列」が入れ子になった構造
- DBから取得したレコード一覧は「連想配列の配列」が基本パターン
$arr[i]['key']の形で順番にキーを重ねてアクセスする- 構造が不明なときは
print_r()かvar_dump()で可視化してから操作する - foreach のネストで多次元配列の全要素を処理できる
次回は 配列関数を学びます。array_map・array_filter・array_reduce など、配列処理を短く安全に書ける関数を習得しましょう。