关于自定义array_column(),array_merge_recursive()和array_slice()实战使用总结

先上代码:

    //工作圈信息流
    public function homepage(){        
        $user_id = $this->checkaccess();  
        $this->getNotice('homepage');
        $this->signpermission();
        $remarkM = M("e2wremark"); 
        $this->assign("totalnum",$remarkM->count()); 
        //日报信息流
        $dailyreportM = M('dailyreport');
        $dailyReportList = $dailyreportM->alias('d')->field('d.id,u.cnname,d.content,d.time')->join('inner join users as u on d.user_id = u.id')->select();
        //会议纪要信息流
        $e2wMeetingM = M("e2wmeetingrecord");
        $meetingRecordList = $e2wMeetingM->alias('m')->field('m.id,u.cnname,m.content,m.time')->join('inner join users as u on m.user_id = u.id')->select();
        //通告信息流
        $e2wnoticesM = M("e2wnotices");
        $noticeList = $e2wnoticesM->alias('n')->field('n.id,u.cnname,n.content,n.time')->join('inner join users as u on n.user_id = u.id')->select();
        //新闻信息流
        $newsM = M("e2wnews");
        $newsList = $newsM->alias('ne')->field('ne.id,u.cnname,ne.content,ne.time')->join('inner join users as u on ne.user_id = u.id')->select();
        //照片信息流
        $pictureM = M('picture');
        $pictureList = $pictureM->alias('p')->field('p.id,u.cnname,p.title as content,p.date as time')->join('inner join users as u on p.user_id = u.id')->select();
        //var_dump($pictureList);
        //数据整合
        $data = array_merge_recursive($dailyReportList,$meetingRecordList,$noticeList,$newsList,$pictureList);
        //数组排序
        //array_multisort(array_column($data,'time'),SORT_DESC,$data);
        array_multisort($this->array_column_diy($data,'time'),SORT_DESC,$data);
        //var_dump($data);
        //分页输出
        $p = $_GET['p'] ? $_GET['p'] : 1;
        $start = ($p - 1)*10;
        $end = $p*10;
        $data_tmp = array_slice($data,$start,$end);
        //分页输出
        import('ORG.Util.Page');  
        $Page       = new  \Page(count($data),10);         
        $Page->setConfig('prev','<');
        $Page->setConfig('header','条记录');
        $Page->setConfig('next','>');
        $Page->setConfig('first','首页');
        $Page->setConfig('last','末页'); 
        $Page->setConfig('theme', ' %totalRow% %header% %nowPage%/%totalPage% 页 %first% %upPage% %linkPage% %downPage%  %end%');
        $show       = $Page->show();// 分页显示输出
        $this->assign('page',$show);// 赋值分页输出
        $this->assign('data', $data_tmp);
        $this->display();
    }

 

以上是公司后台系统需要开发一个数据流功能,将好几张表的数据(各个表之间并无联系,字段也各不相同)整合到一个页面,按时间轴排序。

自定义array_column也是因为该项目php低(array_column需要php5.5+),array_merge_recursive是合并数组,array_slice是做分页

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值