前回から間が空いてしまいましたが PHP の配列に関する話を またやっていこうと思います。
PHP の配列は キーを省略して定義することができます。
$a[] = "a"; $a[] = "b"; $a[] = "c"; print_r($a);
キーを省略した場合は その配列の最大のキーの値に 1 を足した値がキーになります。 (配列が空の場合は 0 になります)
Array
(
[0] => a
[1] => b
[2] => c
)
ただし、ここで最大値を求めるキーは 数値のキーのみになります。 文字列のキーが存在してもそれは無視されます。
$a["test1"] = "a"; $a["test2"] = "b"; $a[] = "c"; $a[] = "d"; print_r($a);
Array
(
[test1] => a
[test2] => b
[0] => c
[1] => d
)
このように文字列のキーは無視して 数値のキーが設定されます。
次のようなこともできます。
$a["test1"] = "a"; $a[] = "b"; $a["test2"] = "c"; $a[] = "d"; print_r($a);
Array
(
[test1] => a
[0] => b
[test2] => c
[1] => d
)
この仕様を利用して 配列のキーを 1 から始めることもできます。
$a[1] = "a"; $a[] = "b"; $a[] = "c"; print_r($a);
Array
(
[1] => a
[2] => b
[3] => c
)
次のようにキーの値の間が空いていても詰められません。
$a[10] = "a"; $a[] = "b"; $a[20] = "c"; $a[] = "d"; $a[5] = "e"; $a[] = "f"; print_r($a);
Array
(
[10] => a
[11] => b
[20] => c
[21] => d
[5] => e
[22] => f
)
PHP 4.3 からキーの最大値が、
負の数値の場合
キーは最大値 +1 ではなく
0 になります。
$a[-5] = "a"; $a[] = "b";
Array
(
[-5] => a
[0] => b
)