如何从PHP字符串中仅取出数字?

时间:2014-03-29 07:22:35

标签: php string numbers

假设我有这个字符串:

$string = "Hello! 123 How Are You? 456";

我想将变量$int设置为$int = 123456;

我该怎么做?

示例2:

$string = "12,456";

必需:

$num = 12456;

谢谢!

5 个答案:

答案 0 :(得分:28)

正确的变体将是:

$string = "Hello! 123 How Are You? 456";
$int = intval(preg_replace('/[^0-9]+/', '', $string), 10);

答案 1 :(得分:4)

您可以使用此方法仅选择文字中的数字

function returnDecimal($text) {
    $tmp = "";  
    for($text as $key => $val) {
      if($val >= 0 && $val <= 9){
         $tmp .= $val
      }
    }
    return $tmp;
}

答案 2 :(得分:1)

使用此正则表达式!\d!

<?php
$string = "Hello! 123 How Are You? 456";
preg_match_all('!\d!', $string, $matches);
echo (int)implode('',$matches[0]);

enter image description here

答案 3 :(得分:1)

您可以使用以下内容:

$array = [];

preg_match_all('/-?\d+(?:\.\d+)?+/', $string, $array);

其中$ string是输入的字符串,$ array是加载每个数字(不是数字!,包括负值!)的地方,可用于不同的操作。

答案 4 :(得分:-1)

<?php
    $string = "ABC100";
    preg_match_all('!\d+!', $string, $matches);
    $number = $matches[0][0];
    echo $number;
?>

输出: 100