2013-06-26 110 views
11

我可以創建簡單的JSON對象是這樣的:構建JSON數組動態

$d = array('item' => "$name" ,'rate' => "$rating"); 

但是,如果我想建立一個項目數組並做動態,因爲我是從一個數據庫查詢構建它是什麼?

更新:

讓我更具體的,我知道我必須做的:

​​

,這將創建一個項目,速度場JSON對象。但是當我編碼時,我想在json數組中使用多個json對象。

我想JSON明智的是這樣的:

[{"item":"toy","rating":"baz" },{"item":"bike","rating":"2.3" }, {"item":"juice","rating":"1.3" }] 
+10

這不是JSON。這是一個PHP數組。 – Paulpro

+10

這不是JSON,它只是一個PHP數組。 – Barmar

+10

這不是JSON,它只是一個PHP數組。 :) –

回答

24

但我想在一個JSON陣列中的多個JSON對象當我編碼。

然後創建一個陣列陣列的並將它傳遞給json_encodedocumentation about arrays說明如何將元素添加到數組中,部分爲使用方括號語法創建/修改

像你已經擁有的關聯數組一樣,將被編碼爲對象,「普通」數組(具有連續數字鍵的數組)將被編碼爲數組。

實施例:

$d = array(); 

// This appends a new element to $d, in this case the value is another array 
$d[] = array('item' => "$name" ,'rate' => "$rating"); 

$json = json_encode($d); 
+0

一個罕見的綠洲,其中PHP實際上是習慣和容易,而不是命令和特質。 – ahnbizcad

0

爲什麼不創建數組就像你剛纔已經做了,但再經過json_encode傳遞數組?

如果你想有一個多維數組,嘗試

$array[] = array("key1" => value1, "key2" => value2); 
+0

閱讀之間的界限,他真正的問題是他不知道如何創建多維數組。 – Barmar

+0

請在他更新時閱讀,他沒有說他不知道該怎麼做,或者當我發表評論時他究竟想要什麼 –

+0

甚至在一開始,他似乎很明顯他不知道如何創建動態數組。他寫道,如果我想要構建一系列項目並動態執行, – Barmar

1

你可以做的是動態創建一個PHP數組,只要你想那麼隱蔽成JSON數組如下。

$json_array = json_encode($array); 

請記住,你所提供的不是一個JSON數組

+0

我剛剛更新了我原來的問題,因爲我沒有足夠詳細 – Mike

8

這將創建從數據庫查詢一個多維陣列中,且接着編碼其作爲JSON。

$d = array(); 
while ($row = $stmt->fetch_assoc()) { 
    $d[] = $row; 
} 
$json = json_encode($d); 

每個$row將是從數據庫返回的數據的關聯數組。將它分配給$d[]將其作爲該容器數組的索引元素添加。

+0

謝謝!這工作完美。 – Harsha