我在过滤具有浮点值的csv文件时遇到问题。以下是我所做的一个例子:
<?php
$data = array(0.152,20,.205);
$result = filter_var_array($data,FILTER_VALIDATE_FLOAT);
var_dump($result);
?>
如您所见,在$data
数组中,第三个浮点数无效,它没有整数部分,所以我希望在$result
中得到一个错误,但不幸的是,这是什么我明白了:
16:24 $ php -q script.php
array(3) {
[0]=>
float(0.152)
[1]=>
float(20)
[2]=>
float(0.205)
}
过滤器通过在点之前添加0来校正浮点数。这没有帮助,因为从一开始该值不正确。怎么避免这个?
::编辑::
如果我使用此过滤器:FILTER_SANITIZE_NUMBER_FLOAT
,我得到零:
16:28 $ php -q script.php
array(3) {
[0]=>
string(4) "0152"
[1]=>
string(2) "20"
[2]=>
string(4) "0205"
我不知道如何确保我不会通过残留的花车。