플로트 값이있는 CSV 파일을 필터링하는 동안 문제가 있습니다. 보시다시피, $data
배열에, 세 번째 플로트가 유효하지filter_var_array를 사용하여 플로트 필터링하는 방법
<?php
$data = array(0.152,20,.205);
$result = filter_var_array($data,FILTER_VALIDATE_FLOAT);
var_dump($result);
?>
, 그것은 정수 부분이없는, 그래서 $result
에 거짓을받을 것으로 예상하지만 : 여기가하는 일의 예입니다 불행하게도, 여기에 내가 무엇을 얻을 수 있습니다 :
16:24 $ php -q script.php
array(3) {
[0]=>
float(0.152)
[1]=>
float(20)
[2]=>
float(0.205)
}
플로트는 점 앞에 0을 추가하여 필터에 의해 수정됩니다. 값이 처음부터 올바르지 않기 때문에 이것은 도움이되지 않습니다. 이것을 피하는 방법? 내가 대신이 필터를 사용하는 경우
:: 편집 :
는 :
16:28 $ php -q script.php
array(3) {
[0]=>
string(4) "0152"
[1]=>
string(2) "20"
[2]=>
string(4) "0205"
나는 수레를 확인이 Invalide 통과하지 못한 만드는 방법을 알고하지 않습니다 FILTER_SANITIZE_NUMBER_FLOAT
을, 나는 제로 수 .
'.205'가 유효한 부동이 발생한다 (앞의 0이 추가) 변환되고, 따라서 유효한 부동 소수점으로 간주하고있다. 'php -r "echo .205;"'는 "0.205"를 출력합니다. 요구 사항을 충족시키지 못하면 사용자 지정 필터링을 구현해야합니다. –