2010-09-15 49 views
2

一些数字我有下一个字符串:从PHP字符串

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. 

感谢您的帮助。

+2

不知怎的,你的“下一个字符串”不符合你的例子。请明确说明。 – 2010-09-15 10:10:54

+0

它应该是“$ digit1 [2]是3”那它 – nik 2010-09-15 10:14:56

+0

和“$ digit2 [1]是8”? – 2010-09-15 10:17:28

回答

4
function ret_int($str){ 
    return array_slice(explode('_', $str), 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

1

如果你只是想从字符串中提取数字,您可以explode他们像FABRIK写道($arr = array_slice(explode('_', $str), 1);)。

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