PHP の配列 その 1

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 つのマップで 数字を添え字にした配列と 文字列を添え字にした配列を使えるようにしているわけです。

Google サイト内検索

Amazonアソシエイト