php,如何处理内部带有浮点数的数组?

php,如何处理内部带有浮点数的数组?,php,arrays,floating-point,Php,Arrays,Floating Point,例如: 以下是正确的吗 $var = floatval($arr[2]) ; “您不能在数组上使用floatval()。”这可能是一个旧指令,或者是如何编辑…?您需要遍历数组并对每个元素执行操作: foreach($arr as $id=>$elem){ $arr[$id]=floatval($elem); } 手册中的引用(顺便说一句,当前手册中似乎不再存在该引用)仅表示不能对数组值使用floatval,即: $foo = array(); $bar = floatval($fo

例如:

以下是正确的吗

$var = floatval($arr[2]) ;

“您不能在数组上使用floatval()。”这可能是一个旧指令,或者是如何编辑…?

您需要遍历数组并对每个元素执行操作:

foreach($arr as $id=>$elem){
  $arr[$id]=floatval($elem);
}

手册中的引用(顺便说一句,当前手册中似乎不再存在该引用)仅表示不能对数组值使用
floatval
,即:

$foo = array();
$bar = floatval($foo);
顺便说一句,这并不完全正确,因为它会产生
1.0
0.0
,这取决于数组是否为空。*这没有多大意义。如果访问数组中的标量值,则不会在数组上使用“
floatval
”。也就是说,这种方法非常有效:

$foo = array("42.1231");
$bar = floatval($foo[0]);
这使用的是
$foo[0]
中的标量值,无论它是否在数组中都是无关的



*手册现在清楚地显示了空数组返回0,非空数组返回1。可能此行为已更改?

$arr=explode(“;”,$line)是一个csv文件的解析…你能显示
var\u dump($arr)的输出吗
要解析CSV,应使用
fgetcsv
。(这与这个问题无关。)“你不能在数组上使用floatval()”,这不是一个输出错误,我在手册上读过它…但我不知道它是否旧…我问了,因为整个脚本在添加百分比增量时有一个奇怪的行为,最终结果是,数组自然不会转换为任何有意义的浮点值,因此手册中会出现警告。如果上面没有给出错误,那么这个问题是毫无根据的。它与
floatval($arr[2])
之间没有根本区别。