提问人:SamCh 提问时间:4/23/2021 更新时间:4/23/2021 访问量:53
php 中 json 数据中的嵌套数组
Nested array in json data in php
问:
我需要在json嵌套数组中显示Mysql数据,例如
{
"status": true,
"categories": [
{
"id": "1",
"title": "Title 1",
},
{
"id": "2",
"title": "Title 2",
},
{
"id": "3",
"title": "Title 3",
}
]
}
我正在尝试的代码是
$sql = "SELECT * FROM `categories`";
$res_data = mysqli_query($conn,$sql);
$rows = array();
while($row = mysqli_fetch_array($res_data)){
$rows[] = $row;
foreach($rows as $row){
$rows = ['id' => $row['id'], 'title' => $row['title']];
}
}
$data = array('status' => true, 'categories' => array($rows));
echo json_encode($data);
但我得到的只是嵌套数组中的一条记录,即
{
"status": true,
"categories": [
{
"id": "1",
"title": "Title 1",
}
]
}
我怎样才能达到我的要求?
答:
0赞
maxi
4/23/2021
#1
如果要避免重复,请省略循环,只需在 while 循环中写入:foreach
$rows[] = ['id' => $ row ['id'], 'title' => $ row ['title']];
...因为有了循环,你已经遍历了行数组。while
0赞
Dharman
4/23/2021
#2
您不需要任何循环。Mysqli 已经返回了一个嵌套数组,您可以直接将其输出到 JSON
$res_data = $conn->query("SELECT id, title FROM `categories`")
echo json_encode(['status' => true, 'categories' => $res_data->fetch_all(MYSQLI_ASSOC)]);
评论
$rows
$rows