【发布时间】:2013-06-20 13:55:44
【问题描述】:
在我的代码中,我生成了一个关联数组,其中键为浮点数,但是 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 添加到 key 处的值:1.25
有什么想法吗?
【问题讨论】:
-
来自文档:
Floats are also cast to integers, which means that the fractional part will be truncated. E.g. the key 8.7 will actually be stored under 8. -
array[1.25]++不起作用,就像array[2.5]++一样。array["1.25"]++会。你确定你尝试过给定的代码吗? -
是的,字符串工作了,谢谢!
标签: php casting associative-array