我想将一串分隔的维度值转换为浮点数。
例如
152.15 x 12.34 x 11mm
into
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
$str = '152.15 x 12.34 x 11mm';
preg_match_all('!\d+(?:\.\d+)?!', $str, $matches);
$floats = array_map('floatval', $matches[0]);
print_r($floats);
The (?:...)
正则表达式构造就是所谓的非捕获组 http://www.regular-expressions.info/named.html。这意味着块不会在部分中单独返回$mathces
大批。这并不是绝对必要的在这种情况下但这是一个值得了解的有用结构。
Note:呼叫floatval() https://www.php.net/floatval元素上的值并不是绝对必要的,因为如果您尝试在算术运算或类似操作中使用它们,PHP 通常会正确地处理类型。不过,这并没有什么坏处,特别是对于只有单层的情况。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)