我有以下字符串:
15 asdas 26 dasda 354 dasd 1
我想要的只是从中提取所有数字到一个数组中,所以它看起来像这样:
array(4) {
[0]=>
string(2) "15"
[1]=>
string(2) "26"
[2]=>
string(3) "354"
[3]=>
string(1) "1"
}
PHP有没有办法实现它?
答案 0 :(得分:2)
您可以使用preg_match_all()
:
$string = '15 asdas 26 dasda 354 dasd 1';
preg_match_all('/\b(\d+)\b/', $string, $numbers);
var_dump($numbers[1]);
答案 1 :(得分:1)
请参阅此Demo
此解决方案使用is_numeric function:
print_r(array_filter(split(" ", "15 asdas 26 dasda 354 dasd 1"),"is_numeric"));
此解决方案使用您自己的功能:
function is_number($var) { return !(0 == intval($var)); }
print_r(array_filter(split(" ", "15 asdas 26 dasda 354 dasd 1"),"is_number"));
对于5.3.0及更高版本,此解决方案使用preg_split function:
print_r(array_filter(preg_split(" ", "15 asdas 26 dasda 354 dasd 1"),"is_numeric"));
答案 2 :(得分:1)
$str = '15 asdas 26 dasda 354 dasd 1';
preg_match_all('/\d+/', $str, $matches);
print_r($matches);
答案 3 :(得分:1)
使用preg_match:http://www.php.net/manual/en/function.preg-match.php
检查网站底部的示例。