【发布时间】:2016-10-11 21:31:19
【问题描述】:
到目前为止,我只是在简单的数据行上使用了 PHP 的 json_encode(),例如
{
"name":"bob",
"age":"22"
}
但是我需要返回包含数组的 JSON。
示例输出是
{
"success":true,
"payload":
{
"venuedata":
{
"id":"1",
"name":"venue name"
},
"menus": [
{"menuid":"1","menuname":"food","items": [{"item":"pizza","cost":"$12.50"},{"item":"burger","cost":"$14.50"}]},
{"menuid":"2","menuname":"drinks","items": [{"item":"pint of beer","cost":"$5.50"}]}
]
}
}
现在,venuedata 对象将来自一个 PDO 查询,菜单将来自另一个查询,每个菜单的项目将来自另一个查询。
如何使用 json_encode 返回示例 JSON?
【问题讨论】:
-
有什么问题?
json_encode()适用于嵌套数组。 -
我怀疑您实际上是在问如何将不同查询的结果组合到一个数组中,而不是关于如何将其编码为 JSON。
-
没错,巴马尔
-
您需要发布执行所有查询的代码。对于菜单,您在一个查询上使用一个循环来获取每个 menuid 的信息,然后使用一个嵌套循环来获取项目并将其推送到
items子数组中。最后,创建$result = array('success' => true, 'venuedata' => $venuerow, 'menus' => $menus);然后对其进行编码。