2015-09-04 120 views
3

你好堆棧溢出,
這是我的第一篇文章,我有一個問題,我需要解析這個文本,並將其變成一個數組(它從數據庫)。PHP解析表/數組字符串

"TableToKeyValues" 
{ 
    "inventory" 
    { 
     "slot2" 
     { 
      "amount"  "10" 
      "item"  "wood_plank" 
     } 
     "slot1" 
     { 
      "amount"  "10" 
      "item"  "metal" 
     } 
     "slot3" 
     { 
      "amount"  "10" 
      "item"  "plastic" 
     } 
    } 
} 

謝謝rtm516。

回答

3

我計算出如何通過格式化成JSON期運用的時間很多str_replace函數來做到這一點。

$inv = preg_replace("/\r|\n/", "", $inv); 
$inv = str_replace('}', '},', $inv); 
$inv = str_replace('"  "', '":"', $inv); 
$inv = str_replace('"   "', '","', $inv); 
$inv = str_replace('"  {', '":{', $inv); 
$inv = str_replace('" {', '":{', $inv); 
$inv = str_replace('"{', '":{', $inv); 
$inv = trim(preg_replace('/\t+/', '', $inv)); 
$inv = str_replace('},}', '}}', $inv); 
$inv = str_replace('},},', '}}', $inv); 
$inv = str_replace('"TableToKeyValues":', '', $inv); 
$inv = json_decode($inv, true); 

編輯:$ inv是來自數據庫的值。

0

如果你想,要轉換成array使用json_decode

$arr = json_decode($dataComingFromDBHERE, true); 
print_r($arr); 
+0

這看起來不像JSON ... –

+0

它沒有,並沒有工作。感謝您的嘗試 – rtm516

+0

我認爲這是一個JSON。數據來自哪裏?在插入數據庫之前。 – aldrin27