我在過濾具有浮點值的csv文件時遇到問題。下面是我做的一個例子:如何使用filter_var_array過濾浮點數
<?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"
我不知道如何確保我沒有通過invalide花車。
'.205'是一個有效的浮動。 'php -r「echo .205;」'打印「0.205」。如果它不符合您的要求,則需要實施自定義篩選。 –