为了账号安全,请及时绑定邮箱和手机立即绑定

来自 sql 数据库的 json_encode 结果

来自 sql 数据库的 json_encode 结果

PHP
慕无忌1623718 2023-05-26 14:22:35
数据库:ID  str域1   x.com2   y.com3   z.com$domainSettings = array();$db_domainList = DB::get("SELECT strDomain FROM domains ORDER BY id ASC;");foreach($db_domainList as $row) {    $domainSettings = array($row->strDomain);}$result = array('allowedDomains' => $domainSettings);echo json_encode($result, JSON_FORCE_OBJECT);当前输出:{"allowedDomains":{"0":"x.com"}}我需要类似于这样的输出:{"allowedDomains":"x.com","y.com","z.com"}输出echo json_encode($db_domainList);:[{"strDomain":"x.com"},{"strDomain":"z.com"},{"strDomain":"y.com"}]
查看完整描述

2 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

如果考虑到所需的输出无效,我正确理解了您的问题,那么这段代码应该可以解决问题。


$db_domainList = DB::get("SELECT strDomain FROM domains ORDER BY id ASC;");


$domainSettings = []; //Just incase $db_domainList is empty


foreach($db_domainList as $row) {

    $domainSettings[] = $row->strDomain;

}


$result = array('allowedDomains' => $domainSettings);

echo json_encode($result);

请注意,我已删除JSON_FORCE_OBJECT标志,因为您要求包含和数组的输出。


上面代码的输出应该看起来像这样,这与您要查找的内容非常接近。


{

    "allowedDomains": [

        "x.com",

        "y.com",

        "z.com"

    ]

}


查看完整回答
反对 回复 2023-05-26
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

如果我没有误解你的要求,那么你可以这样做 -


$db_domainList = DB::get("SELECT strDomain FROM domains ORDER BY id ASC;");

foreach($db_domainList as $row) {

    $domainSettings[] = $row->strDomain;

}

$result = array('allowedDomains' => implode(',',$domainSettings));

echo json_encode($result, JSON_FORCE_OBJECT);


查看完整回答
反对 回复 2023-05-26
  • 2 回答
  • 0 关注
  • 99 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信