0

在我的代码中,我生成了一个关联数组,其中键为浮点数,但是 PHP 文档指出,当它们成为数组中的键时,它们应该被强制转换为整数。相反,它们被转换成字符串(这对我来说实际上更好,所以我没有抱怨)。

问题是,当我尝试使用浮点数作为键值访问这些键时,它只会将具有 0.5 的浮点数转换为整数并在数组中创建一个新条目。似乎是一种奇怪的行为。

例子:

var_dump( $array );

输出:

array(9) {
[0] =>
int(0)
[1.25] =>
int(0)
[2.5] =>
int(0)
....}

当我尝试像这样访问值 2.5 时,

array[2.5]++;

数组中的一个新条目是在array[2] 但是如果我尝试访问数组,array[1.25]++; 我成功地将 1 添加到键的值:1.25

有任何想法吗?

4

1 回答 1

2

我会一直坚持使用字符串:

$a = array(
    '0' => 0,
    '1.25' => 0,
    '2.5' => 0
);

$a['2.5']++;
echo $a['2.5'] . "\n";
var_dump($a);

输出是:

1
array(3) {
  [0]=>
  int(0)
  ["1.25"]=>
  int(0)
  ["2.5"]=>
  int(1)
}
于 2013-06-20T14:00:40.960 回答