【发布时间】:2013-03-05 04:19:50
【问题描述】:
我用过MySql_fetch_assoc 然后json_encode
$type = mysql_query("SELECT type_food,category_food,name_food FROM menu ORDER BY type_food,category_food,name_food");
$rows = array();
while($t = mysql_fetch_assoc($type)) {
$rows[]= $t;
}
print json_encode($rows);
这给了我以下结果:
{"type_food":"pizza","category_food":"Gourmet","name_food":"pepperoni"},
{"type_food":"pizza","category_food":"Gourmet","name_food":"supreme"},
{"type_food":"pizza","category_food":"Gourmet","name_food":"hawaiian"},
{"type_food":"pizza","category_food":"Gourmet","name_food":"tropical"},
{"type_food":"pizza","category_food":"traditional","name_food":"margherita"},
{"type_food":"pizza","category_food":"traditional","name_food":"vegetarian"}
但是我需要像这样制作一个多维 json 结果:
{"pizza": [
{"Gourmet": [
{"pepperoni"},
{"supreme"},
{"hawaiian"},
{"tropical"}]},
{"traditional": [
{"margherita"},
{"vegetarian"}]}
]},
{"etc": [ ... ]}
这可以使用 MySQL 关联数组吗?
【问题讨论】:
-
您应该发布您的 PHP 代码,说明您是如何得出结果的。
-
更改您的 mysql 查询。并发布一些代码。
-
你可以在你的mysql查询中使用
GROUP_CONCAT()(即GROUP_CONCAT(name_food) ... GROUP by category_food)然后explode()GROUP_CONCAT(name_food)数组。 -
mysql 结果通常是扁平的,不像树那样结构化。我认为您需要循环构建它。
-
一个循环变得非常混乱,并且不知何故仍然不会产生预期的结果,除非我将它回显到它应该的方式并且不使用 json_encode
标签: php arrays multidimensional-array json