循环嵌套数组我有2个MySQL表,在那里我有以下SQL语句提取数据:创建与PHP和MySQL
分类:SELECT cat_id, cat_name FROM categories
产品:SELECT pro_id, pro_name, pro_category FROM products
当然,pro_category
是cat_id
外键我想达到以下JSON数据:
"categories":[
{
"id": 1,
"name": "Guitars",
"products":[
{
"id": 1,
"name": "Fender Statocaster"
},
{
"id": 2,
"name": "Gibson Les Paul"
}
]
},
{
"id": 2,
"name": "Basses",
"products":[
{
"id": 3,
"name": "Fender Jazz Bass"
},
{
"id": 4,
"name": "MusicMan StingRay"
}
]
}
]
所以我必须做一个类别的数组,并为每个元素,产品的子数组(然后我会去与json_encode()
)。
通过类别循环并创建第一个数组很容易,但我完全停留在如何创建产品子数组...这是我的代码,问号是我停下来的地方,因为我不知道该怎么办:
$categories = array();
while ($row_rsCategories = mysql_fetch_assoc($rsCategories)) {
$categories[] = array(
'id' => $row_rsCategories['cat_id'],
'name' => $row_rsCategories['cat_name'],
'products' => array(
???????
),
);
}
请问,你能帮忙吗?
谢谢!
Thnaks,这个作品!产品查询是否会影响性能? – Ivan 2013-03-23 13:15:41
@Ivan:我想你将不得不使用inner for循环。请考虑使用'PHP PDO'或'mysqli extentions'来代替默认的'mysql_ *'函数,因为php社区不再推荐它们,并且容易受到像'mysql injection'这样的安全威胁的攻击。 – mithunsatheesh 2013-03-23 13:28:04