我需要使用来自MYSQL数据库的php生成这样的php json:
[['Staff Welfare', 'london', 'map-marker-icon.png'] , ['perfect', 'London', 'map-marker-icon.png'] , ['Fare Trade', 'essex', 'map-marker-icon.png'] , ['Fare Trade', 'london', 'map-marker-icon.png'] ,]
这是我尝试过的:
$return_arr = array();
$sql = "SELECT * FROM restaurants";
if ($result = mysqli_query($db_conx, $sql )){
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
$row_array['id'] = $row['id'];
$row_array['location'] = $row['location'];
$row_array['name'] = $row['name'];
$row_array['type'] = $row['type'];
array_push($return_arr,array($row_array));
}
}
mysqli_close($db_conx);
echo json_encode($return_arr);
但上面的代码回应如下:
[[{"id":"1","location":"london","name":"Staff","type":"indian"}], [{"id":"2","location":"London","name":"perfect","type":"chinese"}],[{"id":"3","location":"essex","name":"Trade","type":"kebab"}],[{"id":"5","location":"london","name":"Fare Trade","type":"kebab"}]]
有人可以告诉我如何删除{}
并删除column names
,以便我的json回声与我想要的一样吗?
答案 0 :(得分:3)
你必须摆脱数组键才能生成没有{}
的json。将array_push
代码更改为:
array_push($return_arr, array_values($row))
;
array_values函数只会返回$row
值,而不会显示任何键。
答案 1 :(得分:2)
您引用的所需JSON无效,但如果您将'
更改为"
并删除了最终,
,那么它将有效:
[
["Staff Welfare", "london", "map-marker-icon.png"],
["perfect", "London", "map-marker-icon.png"],
["Fare Trade", "essex", "map-marker-icon.png"],
["Fare Trade", "london", "map-marker-icon.png"]
]
这是一个包含数组的数组,每个数组包含三个条目,所有这些都是字符串。
如果您不想在JSON中使用对象,请不要将关联数组推送到PHP中的结果数组中。
您的while
循环应为:
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
array_push($result_arr, array(
$row['name'],
$row['location'],
$row['some-field-you-have-not-shown-giving-image-link']
));
}
请注意,推送的是一个带有三个条目的无聊非关联数组。 (另请注意,您还没有显示哪个列名称给出了图片链接,因此我上面使用了描述性的一个。)