二维数组foreach嵌套遍历,判断连续3天以上的算有效数据
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                二维数组foreach嵌套遍历,判断连续3天以上的算有效数据
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                2019獨角獸企業重金招聘Python工程師標準>>>
$studycourseinfo = $studycourseinfoModel->where($where)->limit($page->firstRow.','.$page->listRows)->order('create_time asc')->select(); //$studycourseinfos = $studycourseinfoModel->where($where)->order('course_id asc')->select();//$keys = array("user_id", "course_id");//$studycourseinfo_new = $this->makemultiarr($studycourseinfos,$keys);$cids = array();foreach($studycourseinfo as $key=>$value){$studycourseinfo_new[$value['user_id']][$value['course_id']][$value['create_time']] = $studycourseinfo[$key];$cids[$value['user_id'].'_'.$value['course_id']] = $value['user_id'].'_'.$value['course_id'];}$newStudyinfo = array();foreach($cids as $keys=>$values){$tempArr = explode('_', $values);//var_dump($tempArr);exit;$startTime = 0;$count = 0;$tempStudyinfo = array();foreach($studycourseinfo_new[$tempArr[0]][$tempArr[1]] as $k => $val){ if($startTime == 0){$startTime = $k;$count ++;$tempStudyinfo[] = $val;continue;} if($k - $startTime == 86400){$startTime = $k;$count ++;$tempStudyinfo[] = $val;}else{//if($tempArr[1] == 11){// echo($k.'</br>');//}if($count >= 3){//有效數據$newStudyinfo[] = $tempStudyinfo;$tempStudyinfo = array();$count = 0;}else{//無效丟棄$tempStudyinfo = array();$count = 0;}$startTime = $k;$count ++;$tempStudyinfo[] = $val;}}if($count >= 3){//有效數據$newStudyinfo[] = $tempStudyinfo;$tempStudyinfo = array();$count = 0; }}//var_dump($newStudyinfo);$i = 0;foreach ($newStudyinfo as $_k => $_val) {foreach ($_val as $_kay => $_val) {$_newStudyinfo[$i] = $_val;$i++;}}//dump($_newStudyinfo);//dump($studycourseinfo_new);//exit;
數據查詢結果
轉化成三維數組,用戶id,課程id,詳細信息
因為查詢數據庫的結果被處理過,所以分頁不準確,可?通過有效的二維數組,獲取有效的$id,用$id來查詢數據庫并分頁
$where['total_time'] = array("EGT", 30);/* $count = $studycourseinfoModel->where($where)->count();import('ORG.Util.Page');$page = new Page($count,10);$show = $page->show(); *///$studycourseinfo = $studycourseinfoModel->where($where)->limit($page->firstRow.','.$page->listRows)->order('create_time asc')->select();//先查詢全部數據,下步篩選三維數字獲取有效數據$studycourseinfo = $studycourseinfoModel->where($where)->order('create_time asc')->select();foreach($studycourseinfo as $key=>$value){$studycourseinfo_new[$value['user_id']][$value['create_time']] = $studycourseinfo[$key];}$newStudyinfo = array();foreach($studycourseinfo_new as $keys=>$values){$startTime = 0;$count = 0;$tempStudyinfo = array();foreach($values as $k => $val){ if($startTime == 0){$startTime = $k;$count ++;$tempStudyinfo[] = $val;continue;} if($k - $startTime == 86400){$startTime = $k;$count ++;$tempStudyinfo[] = $val;}else{if($count >= 3){//有效數據$newStudyinfo[] = $tempStudyinfo;$tempStudyinfo = array();$count = 0;}else{//無效丟棄$tempStudyinfo = array();$count = 0;}$startTime = $k;$count ++;$tempStudyinfo[] = $val;}}if($count >= 3){//有效數據$newStudyinfo[] = $tempStudyinfo;$tempStudyinfo = array();$count = 0; }}//轉二維數組$i = 0;foreach ($newStudyinfo as $_k => $_val) {foreach ($_val as $_kay => $_val) {$_newStudyinfo[$i] = $_val;$i++;}}/* * 通過有效的二維數組,獲取有效的$id,用$id來查詢數據庫并分頁*/$id = array();foreach ($_newStudyinfo as $_ks => $_vals){$id[] = $_vals['id'];}$where['id'] = array('in',$id);$count = $studycourseinfoModel->where($where)->count();import('ORG.Util.Page');$page = new Page($count,20);$show = $page->show();$studycourseinfo_newss = $studycourseinfoModel->where($where)->limit($page->firstRow.','.$page->listRows)->order('create_time asc')->select();
轉載請注明:PHP博客 ? 二維數組foreach嵌套遍歷,判斷連續3天以上的算有效數據
轉載于:https://my.oschina.net/guodingding/blog/528485
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的二维数组foreach嵌套遍历,判断连续3天以上的算有效数据的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 【ACR2015】依那西普按需维持治疗策
 - 下一篇: linux下简单的备份的脚本 2 【转】