我正在尝试使用以下代码从 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"
}]
}]
如您所见,它正在复制数据库中的第一行。为什么会这样,我该如何阻止它?
谢谢
您将复制的不仅仅是第一行:
$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);