将 Mysql 数据库转换为 Json

我有一个mysql数据库,我想把它改成json格式,结果如下图


["aaa","bbb","ccc"]

但是当我使用 PHP 编写代码时,如下所示


<?php

require_once("../con.php");


$list = mysqli_query($con,"SELECT * FROM user WHERE reff='admin'");

$r = array();

while($data = mysqli_fetch_array($list)) {

    $r[] = array($data['username']);

}

echo json_encode($r, JSON_PRETTY_PRINT);

?>

结果和我想要的不一样,下面的结果


[ [ "aaa" ], [ "bbb" ], [ "ccc" ] ]

有什么建议可以解决吗?


一只名叫tom的猫
浏览 444回答 3
3回答

料青山看我应如是

最好的方法是&nbsp;$r[] = $data['username'];而不是$r[] = array($data['username']);因为使用这一行,$r[] = array($data['username']);您每次都试图将用户名作为数组而不是用户名字符串值推送$r,这就是为什么它会[]在您的用户名值周围创建额外的括号。但是,如果您不想更改现有代码,那么您可以使用此额外代码行($r = array_merge(...$r)此处...&nbsp;称为 splat 运算符)来按预期获得结果

湖上湖

1.替换 $r[] = array($data['username']);到 $r[] = $data['username'];2."SELECT username FROM user WHERE reff='admin'" // * -> username&nbsp;// in while$r[] = $data[0];or$r[] = current($data);3.sql中的格式SELECT CONCAT('[',GROUP_CONCAT('"',username,'"'),']') FROM user WHERE reff='admin'看。https://dba.stackexchange.com/questions/192208/mysql-return-json-from-a-standard-sql-query如果你的mysql v5.7.22+在sql中使用函数JSON_ARRAY、JSON_OBJECT、JSON_QUOTE https://dev.mysql.com/doc/refman/5.7/en/json-creation-functions.html

侃侃尔雅

您正在将一个数组分配给另一个数组。请参阅此附加更改:<?phprequire_once("../con.php");$list = mysqli_query($con,"SELECT * FROM user WHERE reff='admin'");$r = [];while($data = mysqli_fetch_array($list)) {&nbsp; &nbsp; $r[] = $data['username'];}echo json_encode($r, JSON_PRETTY_PRINT);?>
打开App,查看更多内容
随时随地看视频慕课网APP