使用PHP构造JSON输出

时间:2014-03-15 13:37:35

标签: php mysql arrays json

我正在尝试使用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
        }
      ]
    ]

视觉结果:

what i want

所以,我希望将匹配的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
    }
  ]
]

视觉结果:

enter image description here

2 个答案:

答案 0 :(得分:0)

试试这个

    foreach ($rows as $key => $val) {

        $return[$val['id_flower']][] = $val;
    }
    echo json_encode($return);

请注意我没有测试过。

答案 1 :(得分:0)

$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);

测试你自己!