生成JSON的PHP问题

时间:2015-02-04 01:45:33

标签: php mysql json

我正在尝试使用以下代码从mysql语句生成json:

while($row = mysqli_fetch_array($r))
    {
        $arr_brand[] = array('ID' => $row['ID'],'Name' => $row['brand_name']);
        $arr_brands[] = array('Brand' => $arr_brand);

    }

然而,这就是JSON的出现方式:

[{
  Brand: [{
      ID: "1",
      Name: "CocaCola"
  }]
}, {
  Brand: [{
      ID: "1",
      Name: "CocaCola"
  }, {
      ID: "2",
      Name: "Fanta"
  }]
}]

正如您所看到的,它正在复制数据库中的第一行。为什么这样,我怎么能阻止它?

由于

1 个答案:

答案 0 :(得分:2)

你将复制的不仅仅是第一行:

$arr_brand[] = array('ID' => $row['ID'],'Name' => $row['brand_name']);
$arr_brands[] = array('Brand' => $arr_brand);

在第一行中,您要向$arr_brand数组添加一个新元素,以便数组随每一行增长。然后将该增长数组添加到$arr_brands数组中。

因此$arr_brands的第一行将包含数据库结果的第一行,第二行包含前两行,第三行包含前三行,等等。

你可能想要:

$arr_brand = array('ID' => $row['ID'],'Name' => $row['brand_name']);
$arr_brands[] = array('Brand' => $arr_brand);