0

我有这个代码:

  $val = (float) $desc;
  if (!isset($runepage['statistics'][$key])) {
        $runepage['statistics'][$key] = (float) 0.0;
  }
  $runepage['statistics'][$key] += $val;

$val浮子在哪里。

但是当我在最后打印出数组时,所有值都以整数结尾。例如,如果同一个 1.5、1.5、1.5 $key,它会打印出 3 而不是 4.5。

我不确定它为什么这样做。

编辑:这是数组的输出

[statistics] => Array
    (
        [magic penetration] => 9
        [ability power per level] => 9
        [movement speed] => 3
        [magic resist] => 9
    )
4

1 回答 1

5

对不起,我误读了你的问题,假设这$key是一个浮动。

万一$val——我不知道。它应该适用于值,因此问题的根源可能在其他地方。在 PHP 中,将整数和浮点数相加是安全的,结果将是浮点数。


如果$key是浮点数:

这是正常的,记录在案的行为。数组不应该被浮点数索引。

看起来数字的字符串也被转换为整数。$a[5] === $a['5'].

不幸的是,PHP 数组不是通用的键值存储。您最好的选择是将键序列化为不以数字开头的字符串。

于 2013-03-20T23:32:21.647 回答