シンプルな名簿を作成(4):連想配列

連想配列で名簿リストを拡張

array関数:連想配列

  • P.94参照



array (キー名 => 値, キー名 => 値, …)

  • 配列では値を列挙するだけでしたが、連想配列は「キーと値の組み合わせ」を「キー => 値」の形式で表します
  • キーが重複してもエラーにはなりませんが、最初に設定した値は上書きされます


連想配列には、「$変数名['キー名']」のようにアクセスできます。
例えば「山田太郎」というキーにアクセスするには、以下のように記述します。

<?php print($data['山田太郎']); ?>

foreach命令



foreach (連想配列 as キー変数 => 値変数) {
 …繰り返し実行する処理…
}

<?php
$data = array(
  '山田太郎' => '東京都東京市東町1-1-1',
  '横山花子' => '神奈川県神奈川市西町1-2-3',
  '田中一郎' => '東京都東京市南町2-1-4',
  '山本久美子' => '東京都東京市西町3-2-1',
  '鈴木次郎' => '千葉県千葉市北町1-4-2',
  '星山裕子' => '茨城県茨木市東町3-2-1',
  '佐藤勝男' => '東京都東京市北町2-1-3'
);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PHP入門教室</title>
</head>
<body>
名簿には<?php print(count($data)); ?>人が登録されています。
<dl>
<?php
foreach($data as $name => $address) {
  print('<dt>'.$name.'</dt>'."\n");
  print('<dd>'.$address.'</dd>'."\n");
}
?>
</dl>
</body>
</html>


《実行結果》


配列の入れ子(ネスト)

  • 配列に保存できる値は、文字・数値・真偽値はもちろん「配列」もセットできます
  • P.97参照


二次元配列

<?php
$data = array(
  array('00', '01', '02'),
  array('10', '11', '12'),
  array('20', '21', '22')
);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PHP入門教室</title>
</head>
<body>
<pre>
<?php
print_r($data);
?>
</pre>
</body>
</html>


《実行結果》


多次元配列

<?php
$data2 = array(
  array(
    array('A00', 'A01', 'A02'),
    array('A10', 'A11', 'A12')
  ),
  array(
    array('B00', 'B01', 'B02'),
    array('B10', 'B11', 'B12')
  ),
  array(
    array('C00', 'C01', 'C02'),
    array('C10', 'C11', 'C12')
  )
);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PHP入門教室</title>
</head>
<body>
<pre>
<?php
print_r($data2);
?>
</pre>
</body>
</html>


《実行結果》


まとめ

  • 連想配列は、文字列のキーと値のセットを管理するしくみです
  • 連想配列を作成するには、array関数に「キー名 => 値, ...」の形式で「キー/値」の組みを渡します
  • 連想配列にアクセスするには、「$変数名[ キー名 ]」と表します
  • 連想配列からキー/値のセットを順番に取り出すには、foreach命令の「$key => $value」構文を使うと便利です
  • array関数を入れ子にすることで、多次元配列を表せます