2012-10-08 30 views
2

任何人有任何想法如何處理爆炸錯過元素,如果有東西嵌套?下面的例子。爆炸字符串,同時缺少某些元素

所以我有一個數據結構是這樣的...

{1,2,3,{4,2},5,6} 

我試圖將其轉換成PHP數組是這樣的...

array(1, 2, 3, array(4, 2), 5, 6); 

如何可能任何想法工作?在監視狀態機的同時,一些建議已經被Regex或爆炸了嗎? (但我對他們的工作不知道:S)

+2

在PHP 5.4,這是一個數組文本,並將_just WORK_。 –

+2

它也令我懷疑像JSON。 – SirDarius

+1

'[1,2,3,[4,2],5,6]'在PHP 5.4中有效http://codepad.viper-7.com/5t4K6A – Baba

回答

1

您可以嘗試

$string = "{1,2,{3,2},4,5}" ; 
var_dump(__array($string)); 

$string = "[1,2,3,[4,2],5]" ; 
var_dump(__array($string)); 

$string = "(1,2,(3,2),4,5)" ; 
var_dump(__array($string,array("(",")"))); 

$string = "+1,2,+3,2-,4,5-" ; 
var_dump(__array($string,array("+","-"))); 


function __array($string,$seperator = array("{","}")) 
{ 
    $string = str_replace($seperator, array("[","]"), $string); 
    return json_decode($string); 
} 

輸出

array 
    0 => int 1 
    1 => int 2 
    2 => 
    array 
     0 => int 3 
     1 => int 2 
    3 => int 4 
    4 => int 5