php arrayのkeyについてのメモ
arrayのkeyにはintval的なものがかかってるらしい。
確認したphpのバージョンは5.2.9。
>php -r "$a=array('1'=>'a');var_dump($a);"
array(1) { [1]=> string(1) "a" }
うんうん。
>php -r "$a=array('1'=>'a',1=>'b');var_dump($a);"
array(1) { [1]=> string(1) "b" }
あ、key"1"が上書きされた。
>php -r "$a=array('1'=>'a',1=>'b','0.1'=>'c');var_dump($a);"
array(2) { [1]=> string(1) "b" ["0.1"]=> string(1) "c" }
文字列として定義すればkeyに小数設定しても大丈夫。
>php -r "$a=array('1'=>'a',1=>'b','0.1'=>'c',0.1=>'d');var_dump($a);"
array(3) { [1]=> string(1) "b" ["0.1"]=> string(1) "c" [0]=> string(1) "d" }
げーkey"0.1"が上書きされると思ったのに。
>php -r "$a=array('1'=>'a',1=>'b','0.1'=>'c',0.1=>'d',1.5=>'e');var_dump($a);"
array(3) { [1]=> string(1) "e" ["0.1"]=> string(1) "c" [0]=> string(1) "d" }
>php -r "$a=array('1'=>'a',1=>'b','0.1'=>'c',0.1=>'d',1.2=>'e');var_dump($a);"
array(3) { [1]=> string(1) "e" ["0.1"]=> string(1) "c" [0]=> string(1) "d" }
あとは想像通り。