从数字修剪逗号和空格

时间:2014-02-10 19:57:24

标签: php numeric

我正在使用此功能将平方米转换为平方英尺。

$sinput = rtrim(get_field('fl_area'), ", \t\n");  
if(trim($sinput) == "0"){echo ' ' ;} else {$soutput = metersToSquareFeet($sinput); echo $soutput . ' sq. m (' . number_format($sinput ) . ' sq. f)' ;} 

function metersToSquareFeet($meters, $echo = true)
{
    $m = $meters;
    $valInFeet = $m*10.7639;
    $valFeet = (int)$valInFeet;
    if($echo == true)
    {
        echo $valFeet;
    } else {
        return $valFeet;
    }
}

我遇到的问题是:

rtrim(get_field('fl_area'), ", \t\n");

用户以3,246格式输入数字,我想将其转换为3246,以使我的功能正常工作。

当然我也可以以某种方式修改函数,而不是首先使用rtrim

4 个答案:

答案 0 :(得分:2)

您有几个选项,但最简单的选择可能是删除所有非数字字符。

不确定 get_field 的作用,但假设它只是从输入中获取字段,就可以使用正则表达式。

$sinput = preg_replace( '/[^0-9]/', '', $get_field('fl_area') );

另见:PHP regular expression - filter number only

答案 1 :(得分:2)

rtrim只删除字符串末尾的字符,而不是中间字符。使用preg_replace

$sinput = preg_replace('/[,\s]+/g', '', get_field('fl_area'));

答案 2 :(得分:2)

您可以使用str_replace()从字符串中删除所有出现的逗号和空格:

$m = str_replace(array(',',' '), '', $m);

甚至strtr()

$m = strtr($m, array(',' => '', ' ' => ''));

这可能比常规尝试更快。但是,如果函数调用的数量很少,则差异不会很明显。

答案 3 :(得分:0)

试试这个:

str_replace(array(',',' '), '', get_field('fl_area'));