我正在尝试使用以下代码从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"
}]
}]
正如您所看到的,它正在复制数据库中的第一行。为什么这样,我怎么能阻止它?
由于
答案 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);