2011-09-08 86 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

不錯,現貨不錯。但是,我會說這與他寫的不同,但更可能是他想要的 –