我希望将分隔的维度值字符串转换为浮点数。
例如
152.15 x 12.34 x 11mm转到
152.15, 12.34 and 11并将其存储在数组中,以便:
$dim[0] = 152.15;
$dim[1] = 12.34;
$dim[2] = 11;我还需要处理一些场景,在这些场景中,分隔文本是不同的,数字后面可能有一个单位表达式,如:
152.15x12.34x11 mm
152.15mmx12.34mm x 11mm发布于 2009-06-03 12:19:31
$str = '152.15 x 12.34 x 11mm';
preg_match_all('!\d+(?:\.\d+)?!', $str, $matches);
$floats = array_map('floatval', $matches[0]);
print_r($floats);(?:...)正则表达式构造称为非捕获群。这意味着在$mathces数组的一部分中没有单独返回块。在本例中,这不是绝对必要的,而是一个需要知道的有用结构。
注意:在元素上调用floatval()也不是绝对必要的,因为如果尝试在算术操作或类似的操作中使用它们,PHP通常会正确地处理这些类型。不过,这并不伤人,尤其是因为它只是一条线。
发布于 2009-06-03 12:33:32
<?php
$s = "152.15 x 12.34 x 11mm";
if (preg_match_all('/\d+(\.\d+)?/', $s, $matches)) {
$dim = $matches[0];
}
print_r($dim);
?>给出
Array
(
[0] => 152.15
[1] => 12.34
[2] => 11
)发布于 2009-06-03 12:21:27
$string = '152.15 x 12.34 x 11mm';
preg_match_all('/(\d+(\.\d+)?)/', $string, $matches);
print_r($matches[0]); // Array ( [0] => 152.15 [1] => 12.34 [2] => 11 ) https://stackoverflow.com/questions/944400
复制相似问题