Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用filter\u var\u数组过滤浮点_Php - Fatal编程技术网

Php 如何使用filter\u var\u数组过滤浮点

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

过滤具有浮点值的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 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"