第18回: 連想配列 — 「名前付き」でデータを管理する実務の定番

章: 第2章: 配列とデータ処理

「配列の0番目って何のデータだっけ?」——連想配列なら名前で迷いません

添字配列は番号で管理するため、要素数が増えると「0番目が名前で、1番目が年齢で……」と覚えるのが大変になります。連想配列はキーに名前をつけられるため、データの意味がコードから直接読み取れます。

まずコードを動かしてみる


<?php
$user = ['name' => 'Ken', 'age' => 28];
echo $user['name'];

'name' というキーで値を取得しています。数字の添字と違い、意味のある名前でアクセスできます。

添字配列 vs 連想配列の比較

添字配列 連想配列
キー 0, 1, 2… 任意の文字列・整数
取得 $arr[0] $arr['key']
意味の明確さ 番号だけでは不明 キー名で意図が伝わる
用途 同種データのリスト 構造化されたデータ(ユーザー情報など)

悪い例(添字配列でユーザー情報を管理)


<?php
$user = ['Ken', 28, 'Tokyo']; // 0が名前、1が年齢、2が都市——覚えていないと読めない
echo $user[0]; // 何のデータかわからない

良い例(連想配列で意味を明示)


<?php
$user = ['name' => 'Ken', 'age' => 28, 'city' => 'Tokyo'];
echo $user['name']; // 一目でわかる

チェックポイント: 存在しないキーにアクセスすると Notice: Undefined index が発生します。キーの存在を事前に確認するには isset($arr['key']) または array_key_exists('key', $arr) を使いましょう。null と未定義を区別したい場合は array_key_exists が正確です。

foreachで連想配列を走査する


<?php
$user = ['name' => 'Ken', 'age' => 28, 'city' => 'Tokyo'];
foreach ($user as $key => $value) {
    echo "{$key}: {$value}" . PHP_EOL;
}

まとめ & 次のステップ

  • 連想配列は文字列キーでデータに名前をつけて管理できる
  • ユーザー情報・設定値・フォームデータなど構造化データに最適
  • 添字配列より「データの意味」がコードから読み取りやすくなる
  • 存在しないキーには isset()array_key_exists() で事前確認する
  • foreach ($arr as $key => $value) でキーと値を同時に走査できる

次回は 多次元配列を学びます。ユーザーリストや商品一覧など、実務でよく登場する「配列の中に配列」を扱います。

Related Articles