【问题标题】:Structure JSON output with PHP使用 PHP 构建 JSON 输出
【发布时间】:2014-03-15 13:37:35
【问题描述】:

我正在尝试使用 MySQL 从 DATABASE 生成 JSON 输出。 我想要的结果是我想要一个围绕在数据库表中找到的两个匹配 ID 的数组。

为了可视化我希望在这里实现的目标是我的代码:

这是我的查询

$sql = "SELECT * FROM `flower_garden` WHERE `id_flower` IN (0, 1)";
$result = mysql_query($sql);
while($record = mysql_fetch_assoc($result)) {
    $rows[] = $record;     
}

print json_encode($rows);

这是我希望实现的 JSON 结果: (我想要的)

    [
      [
          "id": "1",
          "id_flower": "3",
          "Title": "rose",
          "Price": 1.25,
          "Number": 15
        },
        {
          "id": "2",
          "id_flower": "3",
          "Title": "daisy",
          "Price": 0.75,
          "Number": 25
        }
      ],
      [
        {
          "id": "3",
          "id_flower": "6",
          "Title": "rose",
          "Price": 1.25,
          "Number": 15
        },
        {
          "id": "4",
          "id_flower": "6",
          "Title": "daisy",
          "Price": 0.75,
          "Number": 25
        }
      ]
    ]

视觉效果:

所以,我希望将匹配的 ID(在本例中为 id_flower)放入一个数组中。 这是我得到的结果: (我得到了什么)

[
  [
      "id": "1",
      "id_flower": "3",
      "Title": "rose",
      "Price": 1.25,
      "Number": 15
    },
    {
      "id": "2",
      "id_flower": "3",
      "Title": "daisy",
      "Price": 0.75,
      "Number": 25
    },
    {
      "id": "3",
      "id_flower": "6",
      "Title": "rose",
      "Price": 1.25,
      "Number": 15
    },
    {
      "id": "4",
      "id_flower": "6",
      "Title": "daisy",
      "Price": 0.75,
      "Number": 25
    }
  ]
]

视觉效果:

【问题讨论】:

    标签: php mysql arrays json


    【解决方案1】:

    试试这个

        foreach ($rows as $key => $val) {
    
            $return[$val['id_flower']][] = $val;
        }
        echo json_encode($return);
    

    请注意我没有测试过。

    【讨论】:

      【解决方案2】:
      $sql = "SELECT * FROM `flower_garden` WHERE `id_flower` IN (0, 1)";
      $result = mysql_query($sql);
      $rows = array();
      while($record = mysql_fetch_assoc($result)) {
          array_push($rows[$record["id_flower"]], $record);
      }
      $result = array();
      foreach($rows as $k => $v){
          array_push($result, $v);
      }
      echo json_encode($result);
      

      测试自己!

      【讨论】:

        猜你喜欢
        • 2013-05-06
        • 2011-01-23
        • 1970-01-01
        • 1970-01-01
        • 2014-12-31
        • 1970-01-01
        • 2013-04-14
        • 2021-12-23
        • 1970-01-01
        相关资源
        最近更新 更多