PHP の配列 その 4

前回から間が空いてしまいましたが 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
)

Google サイト内検索

Amazonアソシエイト