php - preg_grep 不返回正确的结果
问题描述
以下代码未捕获 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);
});
推荐阅读
- apache-spark - spark不使用合并模式从不同文件夹读取所有orc文件
- google-bigquery - 如何从 bigquery 中的 JSON 字段存储中提取数据
- c++11 - bad_lexical_cast c++ 中的异常处理
- node.js - Nginx 配置处理两个 SPA
- javascript - Google 团队云端硬盘:无法看到外部用户的团队云端硬盘选项
- json - 变量命名约定
- memory-management - RxSwift 中的内存管理机制
- java - Creating tests with many mock objects?
- angular - 从函数中设置变量
- ada - 在 Ada 中定义一个包含元素和多重性对的包 Multiset