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来查询数据库并分页
$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天以上的算有效数据