php来自字符串的一些数字

时间:2010-09-15 10:08:27

标签: php regex

我有下一个字符串:

generation_1_2
generation_2_8
generation_3_12

如何将这些字符串中的数字放在变量中? 例如:

$digit1[0] is 1.
$digit1[1] is 2.
$digit1[1] is 3.
$digit1[0] is 2.
$digit1[1] is 8.
$digit1[2] is 12.

感谢您的帮助。

3 个答案:

答案 0 :(得分:4)

function ret_int($str){
    return array_slice(explode('_', $str), 1);
}

答案 1 :(得分:4)

如果您想提取尾随数字,您可以这样做:

if(preg_match_all('/(\d+)$/m',$input,$m)){
   // $m[1] will have all the matches.
}

working link

修改

回答您编辑的问题以提取两个数字:

$digit = array();
if(preg_match_all('/(\d+)\D*(\d+)$/m',$input,$m)) {
        $digit = array_merge($m[1],$m[2]);
}

Working link

答案 2 :(得分:1)

如果你只想从字符串中提取数字,你可以像{$arr = array_slice(explode('_', $str), 1);那样explode

然后使用intval,将每个转换为这样的整数:$int_a = intval($str_a, 10)其中$str_a是数组$arr中的一个字符串。