連想配列

トップ > PHP入門 > 連想配列

目次

広告

連想配列について

配列では各値は順に0番目、1番目、2番目…となっていましたが、数字ではなく文字のキーをもとにして値を設定した配列を連想配列と呼びます。連想配列を作成するには、以下のように書きます。

<?php

$fruit["apple"]  = "リンゴ";
$fruit["orange"] = "ミカン";
$fruit["grape"]  = "ブドウ";

echo $fruit["apple"];
echo $fruit["orange"];
echo $fruit["grape"];

?>

上の例では appleリンゴorangeミカンgrapeブドウ がそれぞれ対になっています。配列のように「0番目の値」「1番目の値」となるのではなく、「appleの値」「orangeの値」というように設定します。

配列は以下のように、複数の箱が連なり、それぞれに名前がついているイメージです。

連想配列について

上の例での連想配列 fruit の内容を表にすると、以下のようになります。

表記 意味
$fruit["apple"] $fruitapple の値 リンゴ
$fruit["orange"] $fruitorange の値 ミカン
$fruit["grape"] $fruitgrape の値 ブドウ

array関数

配列のときと同様、array 関数で一度に値をセットする事ができます。具体的には、以下のようなプログラムです。

<?php

$fruit = array("apple" => "リンゴ", "orange" => "ミカン", "grape" => "ブドウ");

echo $fruit["apple"];
echo $fruit["orange"];
echo $fruit["grape"];

?>

これを実行すると、ブラウザに リンゴミカンブドウ の文字列がそれぞれ表示されます。=> を使って、連想配列のキーと値を設定することができます。

foreach制御文

配列の場合と同様 foreach 制御文を使うと、連想配列の個々の内容に対して順に処理を行うことができます。

<?php

$fruit = array("apple" => "リンゴ", "orange" => "ミカン", "grape" => "ブドウ");

foreach ($fruit as $key => $value) {
  echo "$key ... $value<br />\n";
}

?>

このように書くと、配列 $fruit のキーと値が先頭から順に $key$value という変数に代入され、繰り返し処理されていきます。つまり、$fruit の内容が改行区切りですべて表示されます。