代码之家  ›  专栏  ›  技术社区  ›  Tian Bo

在PHP中从分隔字符串中提取浮点数

  •  9
  • Tian Bo  · 技术社区  · 17 年前

    我想将分隔的维度值字符串转换为浮点数。

    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
    
    6 回复  |  直到 4 年前
        1
  •  1
  •   mickmackusa Tom Green    4 年前
    $str = '152.15 x 12.34 x 11mm';
    preg_match_all('!\d+(?:\.\d+)?!', $str, $matches);
    $floats = array_map('floatval', $matches[0]);
    print_r($floats);
    

    这 (?:...) 正则表达式构造就是所谓的 non-capturing group 。这意味着块不是单独返回的 $mathces 但这是一个有用的构造。

    召唤 floatval()