在php中动态构建json数组


build json array in php dynamically

我可以创建这样的简单json对象:

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

但是,如果我想构建一个项目数组并动态地执行它,因为我是从数据库查询构建它的,该怎么办?

更新:

让我更具体地说,我知道我必须做:

$jsonCode = json_encode($d);

它将创建一个带有item和rate字段的json对象。但当我对json数组进行编码时,我希望在一个json数组中有多个json对象

我想要json-wise是这样的东西:

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

但当我对json数组进行编码时,我希望在一个json数组中有多个json对象

然后创建一个数组,并将其传递给json_encode。关于数组的文档在使用方括号语法创建/修改一节中解释了如何向数组中添加元素。

关联数组,就像您已经拥有的数组一样,将被编码为对象,"正常"数组(具有连续数字键的数组)将被编码成数组。

示例:

$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);

这将从数据库查询中创建一个多维数组,然后将其编码为JSON。

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

每个$row将是从数据库返回的数据的关联数组。将其分配给$d[]会将其添加为该容器数组的索引元素。

您可以根据需要动态创建一个php数组,然后将其转换为json数组,如下所示。

$json_array = json_encode($array);

请记住,您提供的不是json数组

为什么不像刚才那样创建数组,然后通过json_encode传递数组?

如果您想要多维数组,请尝试

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