繁体   English   中英

preg_grep没有返回正确的结果

[英]preg_grep does not return the right results

以下代码不会捕获45.00的结果:

$array = array(50,45.00,34,56,6.67);
$fl_array = preg_grep("/^(\d+)?\.(\d)+$/", $array);

有什么建议吗?

如果执行var_dump($array); 你会得到:

array(5) {
  [0]=> int(50)
  [1]=> float(45)
  [2]=> int(34)
  [3]=> int(56)
  [4]=> float(6.67)
}

PHP将45.00转换为45 这就是为什么找不到正则表达式的原因。

您只能插入字符串。

$array = array("50","45.00","34","56","6.67");

然后它将开始工作。

另一个选择是仅过滤数组中的浮点数:

$array = array(50,45.00,34,56,6.67);
$fl_array = array_filter($array, function($item) {
    return is_float($item);
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM