2011-09-08 121 views
1

阵列我有一个这样的字符串:如何爆炸由多个分隔符

abc=1&def=abc||abc=xyz&xyz=1

我怎么能由&||人物爆炸呢?

用于例如,在这种情况下,阵列应该是

[0] => 'abc=1' 
[1] => 'def=abc' 
[2] => 'abc=xyz' 
[3] => 'xyz=1' 

回答

7

使用preg_split

$str = 'abc=1&def=abc||abc=xyz&xyz=1'; 
$arr = preg_split('#(&|[\|]{2})#', $str); 
var_dump($arr); 

会产生

array 
    0 => string 'abc=1' (length=5) 
    1 => string 'def=abc' (length=7) 
    2 => string 'abc=xyz' (length=7) 
    3 => string 'xyz=1' (length=5) 
+0

你没有逃脱管我相信在课堂内部。我将它设置为'\ | \ |'或'[|] {2}' –

+0

我使用了这个,因为'preg_quote('|')'生成'\ |',只是为了确定。 – cypher

+0

顺便说一句,你也可以使用这种模式:''#(&| \ | \ |)#'' –

0
parse_str(str_replace('||','&',$str),$arr); 
+0

顺便说一句,这将产生不同的数组,他想要的。 – cypher

+0

不错,现货不错。但是,我会说这与他写的不同,但更可能是他想要的 –