【问题标题】:How to nest MySQL results into a JSON array using PHP?如何使用 PHP 将 MySQL 结果嵌套到 JSON 数组中?
【发布时间】:2018-10-18 04:24:26
【问题描述】:

请看下面的链接... http://api.androiddeft.com/cities/cities_array.json

我正在尝试将数据库中的结果嵌套到以下结构中:

[
    {
        region:"1",
        province:[{
           "Ilocos Norte",
           "Ilocos Sur"  
         }]
    },
    {
        region:"2",
        province:[{
           "Isabela",
           "Cagayan"  
         }]
    }
]

但是我尝试过的方法不起作用,我无法获得我正在寻找的结果:

$rows = array();
$rs = array();
$result = mysqli_query($connect, "SELECT regDesc, regCode FROM refregion ORDER BY regCode ASC");

while($row=mysqli_fetch_array($result)){
    $result2 = mysqli_query($connect, "SELECT provDesc FROM refprovince WHERE regCode = '".$row["regCode"]."' ORDER BY provCode ASC");      

    while($rs=mysqli_fetch_array($result2))

    $rows[] = array(
        'region' => $row["regDesc"],
        'province'=>$rs["provDesc"]
        );
    }           

echo json_encode($rows);

这会导致以下输出:

[
  {
    region: "REGION I",
    province: "ILOCOS NORTE"
  },
  {
    region: "REGION I",
    province: "ILOCOS SUR"
  },
  {
    region: "REGION II",
    province: "CAGAYAN"
  },
  {
    region: "REGION II",
    province: "ISABELA"
  }

]

【问题讨论】:

  • 你忘了?,好吧,我会再次刷新你的记忆,使用 file_get_contents 获取 json,然后使用 json_decode 它(使用 true 标志),然后像任何普通数组一样对待它, 添加任意数量。不过,您必须进行编码。
  • 这不是有效的 JSON。目前还不清楚您有什么代码,以及到目前为止您尝试了哪些修复。
  • 我在这里找到了答案...感谢您的回答...stackoverflow.com/questions/34668484/…

标签: php mysql json


【解决方案1】:

试试:

    $rows = array();
    $rs = array();
    $result = mysqli_query($connect, "SELECT regDesc, regCode FROM refregion ORDER BY regCode ASC");
    while($row=mysqli_fetch_array($result)){
        $region = $row['regDesc'];
        $result2 = mysqli_query($connect, "SELECT provDesc FROM refprovince WHERE regCode = '".$row["regCode"]."' ORDER BY provCode ASC");      

        while($rs=mysqli_fetch_array($result2)){
            array_push($province,$rs['provDesc'];
        }           

        $tempArray = array(
            'region' => $region,
            'province' => $province
        )

        array_push($rows,$tempArray);
    }

    echo json_encode($rows);

【讨论】:

  • 来自评论:您能否为您的答案添加更多解释?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-05
  • 2018-12-29
  • 2019-01-26
  • 1970-01-01
相关资源
最近更新 更多