我可以像这样创建简单的json对象:
$d = array('item' => "$name" ,'rate' => "$rating");
但是,如果我想构建一个项目数组并动态执行它,因为我是从db查询构建它的呢?
更新
让我更具体一点,我知道我必须这样做:
$jsonCode = json_encode($d);
将创建一个带有项目和费率字段的json对象。但是当我编码时,我想在json数组中有多个json对象。
我希望json明智的是这样的:
[{"item":"toy","rating":"baz" },{"item":"bike","rating":"2.3" }, {"item":"juice","rating":"1.3" }]
答案 0 :(得分:25)
但是当我编码时,我想在json数组中有多个json对象。
然后创建一个数组数组并将其传递给json_encode
。 documentation 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);
答案 1 :(得分:9)
这将从您的数据库查询创建一个多维数组,然后将其编码为JSON。
$d = array();
while ($row = $stmt->fetch_assoc()) {
$d[] = $row;
}
$json = json_encode($d);
每个$row
将是从数据库返回的数据的关联数组。将其分配给$d[]
会将其添加为该容器数组的索引元素。
答案 2 :(得分:1)
你可以做的就是动态创建一个php数组,然后将其转换为json数组,如下所示。
$json_array = json_encode($array);
请记住,您提供的不是json数组
答案 3 :(得分:0)
为什么不像刚才那样创建数组,然后通过json_encode
传递数组?
如果您想要一个多维数组,请尝试
$array[] = array("key1" => value1, "key2" => value2);