这篇文章介绍的内容是关于php后台关于根据某个相同的日期进行分组 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
接口中发现需要需要将每天(及时unix时间不同),因为unix时间不同,需要将这个时间转成年月日这样,然后作为条件来查询这一天直播的历史数据。然后去这一天所有的数据,技术遇到的问题是,如何将这一天的数据放在一起,用sql分组不可以,因为uninx时间是不同的。所以我采用了函数循环比例进行分组。
**没进行分组的代码**
public function merchants_dynamic()
{
if ($params = request::instance()->ispost()) {
$p = empty($params["p"]) ? 1 :$params["p"];
$pagesize = empty($params["pagesize"]) ? 20 : $params["pagesize"];
$merchants_id = input('merchants_id');//商家商户id
if (!$merchants_id) error("商户店铺id不能为空");
$list = db::name('live_store')->alias("a")
->field("a.live_store_id,d.share,d.watch_nums,d.end_time,b.title,b.apply_id,b.cover_img,b.class_id,c.business_img,c.company_name")
->join("apply b",'a.room_id=b.room_id')
->join("merchants c","b.merchants_id=c.gl_merchants_id")
->join("live d","d.live_id=a.live_id")
->where(['c.gl_merchants_id'=>$merchants_id])
->limit(($p-1)*$pagesize,$pagesize)
->select();
foreach ($list as $k=>$v){
$list[$k]['tag']=db::name('live_class')->where(['live_class_id'=>$v['class_id']])->value('tag');
$list[$k]['end_time'] = date("y-m-d",$v['end_time']);
} if($list){
$data = $list;
}else{
$data = [];
} return success($data);
}
}
**这里没分组的结果**
{ "status": "ok", "data": [
{
"live_store_id": "1",
"share": "0",
"watch_nums": "0",
"end_time": "2018-04-12",
"title": "测试开发",
"apply_id": "35",
"cover_img": "http://test.tstmobile.com/uploads//image/banner/20180412/37592d087ae79a103cea4417e77b6ddf.jpg",
"class_id": "6", "business_img": "http://test.tstmobile.com/uploads/image/20171227/a7de424d12f4fdd77de7f6f9a35a8c48.jpg",
"company_name": "金帅集团2",
"tag": "直播售卖"
},
{
"live_store_id": "2",
"share": "0",
"watch_nums": "0",
"end_time": "2018-04-13",
"title": "测试开发",
"apply_id": "35",
"cover_img": "http://test.tstmobile.com/uploads//image/banner/20180412/37592d087ae79a103cea4417e77b6ddf.jpg",
"class_id": "6", "business_img": "http://test.tstmobile.com/uploads/image/20171227/a7de424d12f4fdd77de7f6f9a35a8c48.jpg",
"company_name": "金帅集团2",
"tag": "直播售卖"
},
{
"live_store_id": "1",
"share": "0",
"watch_nums": "0",
"end_time": "2018-04-12",
"title": "测试开发",
"apply_id": "35",
"cover_img": "http://test.tstmobile.com/uploads//image/banner/20180412/37592d087ae79a103cea4417e77b6ddf.jpg",
"class_id": "6",
"business_img": "http://test.tstmobile.com/uploads/image/20171227/a7de424d12f4fdd77de7f6f9a35a8c48.jpg",
"company_name": "王氏帝国2",
"tag": "直播售卖"
},
{
"live_store_id": "2",
"share": "0",
"watch_nums": "0",
"end_time": "2018-04-13",
"title": "测试开发",
"apply_id": "35",
"cover_img": "http://test.tstmobile.com/uploads//image/banner/20180412/37592d087ae79a103cea4417e77b6ddf.jpg",
"class_id": "6",
"business_img": "http://test.tstmobile.com/uploads/image/20171227/a7de424d12f4fdd77de7f6f9a35a8c48.jpg",
"company_name": "王氏帝国2",
"tag": "直播售卖"
}
]
}
这里按照end_time进行分组,将同一天的数据分组出来代码段
public function merchants_dynamic()
{
if ($params = request::instance()->ispost()) {
$p = empty($params["p"]) ? 1 :$params["p"];
$pagesize = empty($params["pagesize"]) ? 20 : $params["pagesize"];
$merchants_id = input('merchants_id');//商家商户id
if (!$merchants_id) error("商户店铺id不能为空");
$list = db::name('live_store')->alias("a")
->field("a.live_store_id,d.share,d.watch_nums,d.end_time,b.title,b.apply_id,b.cover_img,b.class_id,c.business_img,c.company_name")
->join("apply b",'a.room_id=b.room_id')
->join("merchants c","b.merchants_id=c.gl_merchants_id")
->join("live d","d.live_id=a.live_id")
->where(['c.gl_merchants_id'=>$merchants_id])
->limit(($p-1)*$pagesize,$pagesize)
->select();
foreach ($list as $k=>$v){
$list[$k]['tag']=db::name('live_class')->where(['live_class_id'=>$v['class_id']])->value('tag');
$list[$k]['end_time'] = date("y-m-d",$v['end_time']);
} $res = array();
foreach ($list as $key=>$val){
$res[$val['end_time']][] = $val;
}
$re = [];
foreach ($res as $ke=>$va){
$re[]['time'] = $ke;
foreach ($re as $a=>$v){
$re[$a]['list'] = $va;
}
}
if($list){
$data = $re;
}else{
$data = [];
}
return success($data);
}
}
这里是结果
{
"status": "ok",
"data": [
{
"time": "2018-04-12",
"list": [
{
"live_store_id": "2",
"share": "0",
"watch_nums": "0",
"end_time": "2018-04-13",
"title": "测试开发",
"apply_id": "35",
"cover_img": "http://test.tstmobile.com/uploads//image/banner/20180412/37592d087ae79a103cea4417e77b6ddf.jpg",
"class_id": "6",
"business_img": "http://test.tstmobile.com/uploads/image/20171227/a7de424d12f4fdd77de7f6f9a35a8c48.jpg",
"company_name": "金帅集团2",
"tag": "直播售卖"
},
{
"live_store_id": "2",
"share": "0",
"watch_nums": "0",
"end_time": "2018-04-13",
"title": "测试开发",
"apply_id": "35",
"cover_img": "http://test.tstmobile.com/uploads//image/banner/20180412/37592d087ae79a103cea4417e77b6ddf.jpg",
"class_id": "6",
"business_img": "http://test.tstmobile.com/uploads/image/20171227/a7de424d12f4fdd77de7f6f9a35a8c48.jpg",
"company_name": "王氏帝国2",
"tag": "直播售卖"
}
] },
{
"time": "2018-04-13",
"list": [
{
"live_store_id": "2",
"share": "0",
"watch_nums": "0",
"end_time": "2018-04-13",
"title": "测试开发",
"apply_id": "35",
"cover_img": "http://test.tstmobile.com/uploads//image/banner/20180412/37592d087ae79a103cea4417e77b6ddf.jpg",
"class_id": "6",
"business_img": "http://test.tstmobile.com/uploads/image/20171227/a7de424d12f4fdd77de7f6f9a35a8c48.jpg",
"company_name": "金帅集团2",
"tag": "直播售卖"
},
{
"live_store_id": "2",
"share": "0",
"watch_nums": "0",
"end_time": "2018-04-13",
"title": "测试开发",
"apply_id": "35",
"cover_img": "http://test.tstmobile.com/uploads//image/banner/20180412/37592d087ae79a103cea4417e77b6ddf.jpg",
"class_id": "6",
"business_img": "http://test.tstmobile.com/uploads/image/20171227/a7de424d12f4fdd77de7f6f9a35a8c48.jpg",
"company_name": "王氏帝国2",
"tag": "直播售卖"
}
] }
]}
end
相关推荐:
linux环境下php后台守护进程的实现方式
微信小程序php后台实现的方法
以上就是php后台关于根据某个相同的日期进行分组的详细内容。