2012-11-03 214 views
1

所以我試圖找出將MySql表數據導入多維PHP數組或將該多維數組轉換爲json字符串的最佳方法。將PHP多維數組添加到JSON

本質上,即時嘗試做的是有一個PHP包含返回JSON字符串,所以我可以遍歷它。我需要一個具有多個值的單個鍵,所以我不能100%確定im正朝着正確的方向前進。

我想多個值分配給同一鍵,例如:

[{"key1": "package1", "package2", "package3"}, {"key2": "package1", "package2", "package3", "package4"}] 

我認爲這是行不通的吧?因爲我沒有任何類型的索引?

+3

你試過json_encode?這應該已經爲你處理了一切。 (它會以正確的格式輸出json,而不是你指定的那個,這是不正確的,因爲json數組應該以不同的方式表示。) – Edison

+0

[用PHP解析JSON文件]可能的重複(http://stackoverflow.com/questions/4343596/parsing-json-file-with-php) – brenjt

回答

4

這不是有效的JSON。你正在尋找的結構是這樣的:

[ 
{"key1": ["package1", "package2", "package3"]}, 
{"key2": ["package1", "package2", "package3", "package4"}] 
     ^An array as the value to the key "key1", "key2", etc.. 
] 

在PHP的一面,你需要這樣的:取

  1. 對於每一行從MySQL
    • $arr[$key] = <新陣>
    • 每個包:
      • 追加包$arr[$key]
  2. 回聲出json_encode($arr)
+0

我的最終目標是將'db'表中的每個項目作爲一個鍵,然後對每個鍵具有在'key/table'下的數據庫中的各種'值' – user616

+0

試圖讓第二個數組附加到第一個..踢我的屁股 – user616

1

JS數組有一個隱含的陣列鍵控,在指數0開始什麼你所得到的是一個完全有效的JS數組,編寫相當於:

var x = []; // create new empty array 
x[0] = {"key1": .... }; // first object 
x[1] = {"key2": ....} // second object 

請注意,您{}子的內容對象無效。

你永遠不應該永遠構建一個JSON字符串。這太不可靠,容易搞砸。使用本地數據結構(php數組/對象)更簡單,然後使用json_encode()。在進程的另一端同上 - 不要手動解碼字符串。轉換爲本地數據結構(例如json_decode(),JSON.parse()),然後直接處理本機結構。本質上,JSON是一種傳輸格式,而不是一種操作格式。

+0

+1解釋關於js的JSON格式.. :) –