3 回答
TA贡献1772条经验 获得超8个赞
最好的方法是 $r[] = $data['username'];
而不是$r[] = array($data['username']);
因为使用这一行,$r[] = array($data['username']);
您每次都试图将用户名作为数组而不是用户名字符串值推送$r
,这就是为什么它会[]
在您的用户名值周围创建额外的括号。
但是,如果您不想更改现有代码,那么您可以使用此额外代码行($r = array_merge(...$r)
此处...
称为 splat 运算符)来按预期获得结果
TA贡献2003条经验 获得超2个赞
1.
替换 $r[] = array($data['username']);
到 $r[] = $data['username'];
2.
"SELECT username FROM user WHERE reff='admin'" // * -> username
// 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
TA贡献1801条经验 获得超16个赞
您正在将一个数组分配给另一个数组。请参阅此附加更改:
<?php
require_once("../con.php");
$list = mysqli_query($con,"SELECT * FROM user WHERE reff='admin'");
$r = [];
while($data = mysqli_fetch_array($list)) {
$r[] = $data['username'];
}
echo json_encode($r, JSON_PRETTY_PRINT);
?>
- 3 回答
- 0 关注
- 443 浏览
添加回答
举报