2013-07-17 41 views
1

我想知道如果有人在這裏可以幫助我。我有以下字符串:使用單個正則表達式將字符串解析爲多維數組?

$str = 'unit1(field1,field2,field3),unit2(field4,field5,field6)'; 

我試圖解析這個字符串創建下面的數組:

array(
    'unit1' => array('field1', 'field2', 'field3') 
    'unit2' => array('field4', 'field5', 'field6') 
) 

我用正則表達式非常絕望,所以我甚至不知道從哪裏開始的這。

感謝

+1

我想你在底部'unit2'中缺少一些單引號? – John

+0

要了解正則表達式,你可以從這裏開始http://www.regular-expressions.info/。然後檢查PHP文檔中的'preg_match'和'preg_match_all'。一旦你閱讀了所有嘗試構建自己的解決方案並回來的代碼失敗,有人可能會幫助。 – elclanrs

+0

您的第一個代碼示例不是字符串。 – Jared

回答

3

你可以做到這一點,而無需使用正則表達式

$str = 'unit1(field1,field2,field3),unit2(field4,field5,field6)'; 
$str = trim($str, ")"); 
$parts = explode("),",$str); 
$results = array(); 
foreach($parts as $part){ 
     list($key, $value) = explode("(", $part,2); 
     $results[$key] = explode(",", $value); 
} 

現在$結果,當您指定將包含輸出。

相關問題