array

添え字が数値の配列について、すこし動作を探ってみる。

$a = array();
$a[1] = 'a';
$a[3] = 'b';
$a['1'] = 'c';
print_r($a);
Array ( [1] => c [3] => b ) 

マニュアルにも、「あるキーが、整数の標準的な表現形式である場合、 そのように解釈されます。(つまり、"8"は 8として解釈されます。一方、 "08"は"08"として解釈されます。) 」とある。

$a = array();
$a[1] = 'a';
$a[3] = 'b';
$a[2] = 'c';
print_r($a);
Array ( [1] => a [3] => b [2] => c )

整数添え字でも、登録順は保存される。小さい順に並ぶわけではない。

添え字でソートするにはksort()関数を使う。ただし、1次元しかソートされないので、2次元配列を添え字でソートするには、

ksort($b);
array_map('ksort', $b);