我希望使用do while循环将我的数据从mysql返回到json数组。 当我用json返回一条记录时,它很好。但我希望在一个json数组中返回数组列表。 怎么能用索引来做呢?我的代码有错误,我不知道怎么办。有一个记录很好,但更多不能。
$json="array(";
do{
$json=."'$row_query['id']'=>array('fname'=>$row_query['fname'],'lname'=>$row_query['lname']),";
} while ($row_query = mysqli_fetch_assoc($query));
json=.")";
echo json_encode($json,JSON_UNESCAPED_UNICODE);
答案 0 :(得分:4)
无需添加引号,括号,括号或其他内容。 json_encode
函数会为您完成。只需提供数组:
$json = [];
while ($row_query = mysqli_fetch_assoc($query)) {
$json[$row_query['id']] = [
'fname'=>$row_query['fname'],
'lname'=>$row_query['lname'],
];
}
echo json_encode($json,JSON_UNESCAPED_UNICODE);
答案 1 :(得分:1)
这是最简单的版本。你可以试试这个。
$json = new array();
do{
array_push($json,$row_query);
} while ($row_query = mysqli_fetch_assoc($query));
或强>
$json = [];
do{
$json[] = $row_query;
} while ($row_query = mysqli_fetch_assoc($query));
Atlast编码你的json变量。
$json = json_encode($json);
echo $json;