我想从包含数字和字母的字符串中提取数字,如:

\"In My Cart : 11 items\"

我想在这里得到号码11或任何其他号码。

有什么方法可以解决吗?

 

方法一:正则表达式

$str = \'In My Cart : 11 12 items\';
preg_match_all(\'!\\d+!\', $str, $matches);
print_r($matches);

preg_replace(\'/[^0-9]/\', \'\', $string);

 

方法二:

如果您只想过滤除数字以外的所有内容,最简单的方法是使用filter_var:

$str = \'In My Cart : 11 items\';
$int = (int) filter_var($str, FILTER_SANITIZE_NUMBER_INT);

 

方法三:

根据您的使用情况,这也可能是一个选项,虽然我同意正则表达式或者filter_var()

$str = \'In My Cart : 11 items\';
$num = \'\';

for ($i = 0; $i < strlen($str); $i++) {

    if (is_numeric($str[$i])) {
        $num .= $str[$i];
    }
}

echo $num; // 11
收藏 打印