2013-06-26 76 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