从PHP中的字符串中提取浮点数

Tia*_* Bo 8 php regex text

我想将字符串转换为浮点数.例如

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通常会正确地处理这些类型.但它并没有受到伤害,特别是仅仅是一个班轮.