PHP でプログラミングしていると 配列を非常に良く使います。 終始配列を操作してることもあるくらいです。 そんな PHP の配列について 復習も兼ねて書いていきたいと思います。
PHP の配列は、次の (1) のように 数字を添え字にした使い方と (2) のように文字列を添え字にした いわゆる連想配列やハッシュなどと呼ばれる使い方があります。
$a[2] = 3; //(1) $b['ten'] = 10; //(2)
配列の種類が 2 つあるように見えますが これは実は同じもので PHP の配列はキーに対して値を設定する マップになっています。
なので、上記の数字と文字列が添え字の配列を 1 つの配列にまとめることができます。
$a[2] = 3; //(1) $a['ten'] = 10; //(2)
関数の戻り値など以外で 配列を作るには array() や上記のような [] 指定を使います。 (array() は echo() などと同様に言語の要素なので通常の関数とはちょっと違います)
$a = array(1, 3, 7, 9);
上のように宣言した場合、添え字(キー)は 先頭から順に 0,1,2 …となります。 [] 指定だと次のようになります。
$a[0] = 1; $a[1] = 3; $a[2] = 7; $a[3] = 9;
文字列を添え字(キー)にするときは次のようにします。
$a = array("a" => 2, "b" => 4, "c" => 6);
これは次の指定と同じです。
$a["a"] = 2; $a["b"] = 4; $a["c"] = 6;
配列は、最初に書いたように混在させることができます。
$a = array(1, 3, "a" => 2, 7, "b" => 4, "c" => 6);
なぜ指定の異なるものを混在させることができるのでしょうか?
それは指定の少ない方(キーを宣言しない方)は 暗黙的にキーが指定されているのです。
つまりキー(添え字)を指定しない次の式は
$a = array(1, 3, 7, 9);
実は暗黙的に次のように指定していることになります。
$a = array(0 => 1, 1 => 3, 2 => 7, 3 => 9);
このようにして PHP は 1 つのマップで 数字を添え字にした配列と 文字列を添え字にした配列を使えるようにしているわけです。