为什么我在php中得到错误的数组计数

San*_*kar -1 php arrays

$array = array (0.1 => 'a', 0.2 => 'b');
echo count ($array);

它用第二个覆盖第一个数组元素,因为我使用了浮点数为0.

因此上面代码的输出是1而不是2.

为什么PHP圆形数组索引降至0?

Mic*_*ski 6

数组键被解释为数字,但数字键必须是整数.因此,两个浮点值都被转换(截断)为整数零并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)