3
function get_only_numbers($string){
    $getonly = str_split("0123456789");
    $string = str_split($string);
    foreach($string as $i => $c){
        if(!in_array($c, $getonly))
            unset($string[$i]);
    }
    return implode("", $string);
}

echo get_only_numbers("U$ 499,50"); // prints 49950

这个函数应该只返回字符串中的数字。这个函数的编码是否正确?

4

3 回答 3

4

我认为对preg_replace的一次调用也可以做到这一点:

preg_replace('/\D+/', '', 'U$ 499,50'); // returns "49950"
于 2012-05-09T20:35:36.757 回答
3

请参阅is_numeric以进一步优化您的函数,以便您不需要数组比较。

于 2012-05-09T20:31:43.860 回答
2

适当地?它做了它应该做的......但我更喜欢正则表达式:

function get_only_numbers($string){
    return preg_replace("/[^0-9]/", "", $string);
}
于 2012-05-09T20:36:00.480 回答