我想将字符串转换为浮点数.例如
152.15 x 12.34 x 11mm
Run Code Online (Sandbox Code Playgroud)
成
152.15, 12.34 and 11
Run Code Online (Sandbox Code Playgroud)
并存储在一个数组中,使得$ dim [0] = 152.15,$ dim [1] = 12.34,$ dim [2] = 11.
我还需要处理类似的事情
152.15x12.34x11 mm
152.15mmx12.34mm x 11mm
Run Code Online (Sandbox Code Playgroud)
谢谢.
cle*_*tus 18
$str = '152.15 x 12.34 x 11mm';
preg_match_all('!\d+(?:\.\d+)?!', $str, $matches);
$floats = array_map('floatval', $matches[0]);
print_r($floats);
Run Code Online (Sandbox Code Playgroud)
在(?:...)
正则表达式建设什么叫做非捕获组.这意味着在块的一部分中不会单独返回块$mathces
.在这种情况下,这不是严格必要的,但是知道是有用的结构.
注意:调用floatval()
元素并不是必需的,因为如果您尝试在算术运算中使用它们或类似的话,PHP通常会正确地处理这些类型.但它并没有受到伤害,特别是仅仅是一个班轮.