$array = array (0.1 => 'a', 0.2 => 'b');
echo count ($array);
它用第二个覆盖第一个数组元素,因为我使用了浮点数为0.
因此上面代码的输出是1而不是2.
为什么PHP圆形数组索引降至0?
数组键被解释为数字,但数字键必须是整数.因此,两个浮点值都被转换(截断)为整数零并0.2覆盖0.1.
var_dump($array);
array(1) {
[0]=>
string(1) "b"
}
Run Code Online (Sandbox Code Playgroud)
如果要使用非整数值,请创建数组键字符串:
$array = array ("0.1" => 'a', "0.2" => 'b');
echo count($array);
// 2
array(2) {
["0.1"]=>
string(1) "a"
["0.2"]=>
string(1) "b"
}
Run Code Online (Sandbox Code Playgroud)