我真的应该对我的正则表达式有所了解,但现在任何人都可以帮忙解决这个问题......
((2,3,4,11,8),(5,44,67,78,32,22,111,234))
如您所见,每个数字范围都以逗号分隔,在本例中,有两个数字范围。
在实时场景中,可能会有很多数字和少数范围。
那么......我如何将这样的东西提取到php嵌套数组或类似的东西中呢?
任何帮助表示赞赏
答案 0 :(得分:5)
明智地使用explode()
并按照以下方式执行:
$ranges = '((2,3,4,11,8),(5,44,67,78,32,22,111,234))';
//break into groups
$array = explode('),(', $ranges);
//trim any parenthesis left and then split by comma ,
foreach($array as &$group)
$group = explode(',',trim($group, '()'));
//display result
var_dump($array);
输出:
array
0 =>
array
0 => string '2' (length=1)
1 => string '3' (length=1)
2 => string '4' (length=1)
3 => string '11' (length=2)
4 => string '8' (length=1)
1 => &
array
0 => string '5' (length=1)
1 => string '44' (length=2)
2 => string '67' (length=2)
3 => string '78' (length=2)
4 => string '32' (length=2)
5 => string '22' (length=2)
6 => string '111' (length=3)
7 => string '234' (length=3)
答案 1 :(得分:3)
$input = str_replace(array('(', ')'), array('[', ']'), $input);
$output = json_decode($input);
这可能也有效