Php 如何使用filter\u var\u数组过滤浮点
过滤具有浮点值的csv文件时出现问题。下面是我所做工作的一个例子:Php 如何使用filter\u var\u数组过滤浮点,php,Php,过滤具有浮点值的csv文件时出现问题。下面是我所做工作的一个例子: <?php $data = array(0.152,20,.205); $result = filter_var_array($data,FILTER_VALIDATE_FLOAT); var_dump($result); ?> 过滤器通过在点之前添加0来校正浮点。这没有帮助,因为该值从一开始就不正确。如何避免这种情况 ::编辑:: 如果我改用这个过滤器:filter\u SANITIZE\u NUMBER\u F
<?php
$data = array(0.152,20,.205);
$result = filter_var_array($data,FILTER_VALIDATE_FLOAT);
var_dump($result);
?>
过滤器通过在点之前添加0来校正浮点。这没有帮助,因为该值从一开始就不正确。如何避免这种情况
::编辑::
如果我改用这个过滤器:filter\u SANITIZE\u NUMBER\u FLOAT
,我会得到一个零:
16:28 $ php -q script.php
array(3) {
[0]=>
string(4) "0152"
[1]=>
string(2) "20"
[2]=>
string(4) "0205"
我不知道如何确保我不通过无效浮点。问题是
过滤器\u验证\u浮点
将通过验证的值转换为浮点
.205
它似乎被视为有效的浮点,因此被转换(加上前导零)
请参阅
.205
是有效的浮点php-r“echo.205;”
打印“0.205”。如果它不符合您的要求,您需要实现自定义筛选。我有一个问题,请@Luke,这个筛选筛选器\u VALIDATE\u FLOAT会将文件中的浮点从.205更正为0.205吗?@Somar在哪个文件中?您的代码显示您从数组中读取它们。在文件中,我从中获取浮点值进行筛选。我在问题中说我有一个csvfile@Somar你可以将过滤后的值写回一个文件,当然,只是简单地更新数组不会将任何内容写入一个文件。我的意思是,事实上,我调用文件的每一行来过滤它。我将filter\u var\u数组应用于行的每个值。但不确定过滤器是否只需调用过滤器或通过第三方程序即可更正.205到0.205之类的值。?
16:28 $ php -q script.php
array(3) {
[0]=>
string(4) "0152"
[1]=>
string(2) "20"
[2]=>
string(4) "0205"