PHPの配列はすべて連想配列
配列の構造
array( key => value, key2 => value2, key3 => value3, ... )
当然valueの型は任意ですが、keyの方は整数と文字列のどちらかに限定されています。
keyに何も入れないと
keyは指定しないと勝手に整数をkeyにしてくれます。この値は「keyとした最大の整数 + 1(整数のkeyがなければ0)」となっています。また同じkeyを指定すると、そのvalueは上書きされます
<?php $arraytest = array(0,1,2, 10 => 3, 4 , 5); var_dump($arraytest);
↓
array(6) { [0]=> int(0) [1]=> int(1) [2]=> int(2) [10]=> int(3) [11]=> int(4) [12]=> int(5) }
keyにいろんな型をぶち込むと
浮動小数点数なら切り捨てで整数に、真偽値なら0,1の整数に型変換され、他の型を入れると無視します。
<?php $int = 3; $double = 5.5; $string = "str"; $bool = TRUE; $array = array(9,8,7); $arraytest = array($int => "int", $double => "double", $string => "string",$bool => "bool",$array => "array"); var_dump($arraytest);
↓
array(4) { [3]=> string(3) "int" [5]=> string(6) "double" ["str"]=> string(6) "string" [1]=> string(4) "bool" }
数字のみからなる文字列をkeyにすると
文字列が整数型に変換されてkeyになります。
<?php $arraytest = array(0,0,0,0,0,"100" => "wow","2" => "wow","1a" =>"wow"); var_dump($arraytest);
↓
array(6) { [0]=> int(0) [1]=> int(0) [2]=> string(3) "wow" [3]=> int(0) [4]=> int(0) [100]=> string(3) "wow" ["1a"]=> string(3) "wow" }
PHPの配列を用いるときには
- keyは文字列か整数に!
- 文字列の場合は数値だけにしない!