Iva*_*van 1 php mysql loops multidimensional-array
我有 2 个 MySQL 表,我在其中使用以下 SQL 语句提取数据:
类别: 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"
}
]
}
]
Run Code Online (Sandbox Code Playgroud)
所以我必须做一个类别数组,对于每个元素,一个产品子数组(然后我会去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(
???????
),
);
}
Run Code Online (Sandbox Code Playgroud)
拜托,你能帮忙吗?
谢谢!
$categories = array();
while ($row_rsCategories = mysql_fetch_assoc($rsCategories)) {
$product_array = array();
$product_array_query = mysql_query("SELECT pro_id, pro_name, pro_category FROM products WHERE pro_category = '".$row_rsCategories['cat_id']."'");
while($product_array_fetch = mysql_fetch_array($product_array_query)) {
$product_array[] = array("id"=>$product_array_fetch['pro_id'],"name"=>$product_array_fetch['pro_name']);
}
$categories[] = array(
'id' => $row_rsCategories['cat_id'],
'name' => $row_rsCategories['cat_name'],
'products' => $product_array,
);
}
Run Code Online (Sandbox Code Playgroud)