我在MySQL的2个表如何将PHP中数组中的数组分组并编码为JSON?
科
section_id name
=====================
1 Section1
2 Section2
类别
category_id section_id name
=========================================
1 1 Category1
2 1 Category2
3 2 Category3
4 2 Category3
这是我现在有:
$sections = mysql_query($sql_section) or die("Could not execute query.");
$categories = mysql_query($sql_category) or die("Count not execute query");
$result = array('sectionlist' => array());
for ($i=0; $i < mysql_num_rows($sections); $i++){
for ($j=0; $j < mysql_num_rows($categories); $j++){
if (mysql_result($sections,$i,"section_id") == mysql_result($categories,$j,"section_id")){
$result['sectionlist'][] = array('sectionName' => mysql_result($sections,$i,"name"), 'categorylist' => array(array('category' => mysql_result($categories,$j,"name"))));
}
}
}
echo json_encode($result);
已经出来的结果是这样的:
{sectionlist:[
{sectionName: "Section1", categoryList: [{categoryName: "category1"}]},
{sectionName: "Section1", categoryList: [{categoryName: "category2"}]},
{sectionName: "Section2", categoryList: [{categoryName: "category3"}]},
{sectionName: "Section2", categoryList: [{categoryName: "category4"}]},
]}
这不是预期的结果,从我来说,我想有一个对象,它看起来像这样:
{sectionlist:[
{sectionName: "Section1", categoryList: [{categoryName: "category1"}, {categoryName: "category2"}]},
{sectionName: "Section2", categoryList: [{categoryName: "category3"}, {categoryName: "category4"}]}
]}
因此,如何我可以将第1部分与第1部分和第2部分分组?
请发布您正在执行的查询。另外,避免使用日期的mysql_ *函数。将它们用于新代码的程度高达 [灰心](http://php.net/mysql_query)。 更多现代化的替代品可供选择并更好地维护。 请考虑学习 [已准备好的陈述](http://en.wikipedia.org/wiki/Prepared_statement) 而不是使用 [PDO或MySQLi](http://php.net/manual/en/mysqlinfo。 api.choosing.php)。 当严格使用时,避免繁琐和手动转义部分,因此变得更容易堆积,因为副产品更安全使用。 请参阅[PDO教程](http://goo.gl/vFWnC)开始。 – gcochard 2012-08-17 00:09:43
谢谢Greg。理解这点非常重要。 – Vicheanak 2012-08-17 00:53:04