【发布时间】:2016-11-27 22:29:08
【问题描述】:
我正在尝试从 mysql 表中获取所有结果并转换为 Json 格式。每行可能包含一个公共列值(movie_name)。我想按该公共字段对结果进行分组。
这是我使用此查询的第一个结果
$slots = SELECT movie_name,id as slot_id,screen_id,time,price FROM `slots`;
结果:
{
"movies": [
{
"movie_name": "iceage",
"slot_id": "142",
"screen_id": "45",
"time": "6.00",
"price": "204"
},
{
"movie_name": "lights out",
"slot_id": "146",
"screen_id": "45",
"time": "11.00",
"price": "150"
},
{
"movie_name": "lights out",
"slot_id": "147",
"screen_id": "45",
"time": "2.00",
"price": "103"
},
{
"movie_name": "conjuring",
"slot_id": "148",
"screen_id": "45",
"time": "9.00",
"price": "500"
},
{
"movie_name": "iceage",
"slot_id": "151",
"screen_id": "45",
"time": "",
"price": "11"
},
{
"movie_name": "lights out",
"slot_id": "155",
"screen_id": "45",
"time": "11",
"price": "11"
}
]
}
我想像这样改变上面的结果:-
{
"movies": [
{
"movie_name": "lights out",
"slots":[ {
"slot_id": "146",
"screen_id": "45",
"time": "11.00",
"price": "150"
}
{
"slot_id": "147",
"screen_id": "45",
"time": "2.00",
"price": "103"
}
{
"slot_id": "155",
"screen_id": "45",
"time": "11",
"price": "11"
}
]
},
{
"movie_name": "conjuring",
"slots": {
"slot_id": "148",
"screen_id": "45",
"time": "9.00",
"price": "500"
}
},
{
"movie_name": "iceage",
"slots":[ {
"slot_id": "142",
"screen_id": "45",
"time": "6.00",
"price": "204"
}
{
"slot_id": "151",
"screen_id": "45",
"time": "",
"price": "11"
}
]
},
]
}
我应该如何更改我的查询以获得上述结果。我试过这个 PHP 代码:
foreach ($slots as $row) {
$movie_name = $row['movie_name'];
if (!isset($groups[$movie_name])) {
$groups[$movie_name] = array();
}
$groups[$movie_name][] = $row;
}
但没有得到所需的结果。请帮忙。谢谢你。。
【问题讨论】: