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天以上的算有效数据相关推荐

  1. Java黑皮书课后题第8章:**8.19(模式识别:四个连续相等的数)编写下面的方法,测试一个二维数组是否有四个连续相等的数字(水平、垂直、对角线方向都可以)。编写一个测试程序,提示用户输入一个数组

    **8.19(模式识别:四个连续相等的数)编写下面的方法,测试一个二维数组是否有四个连续相等的数字(水平.垂直.对角线方向都可以).编写一个测试程序,提示用户输入一个数组 题目 题目描述与运行实例 破 ...

  2. C++二维数组按行遍历和按列遍历的区别

    按行遍历的效率更高.(重要前提假设:数组,按行储存:对于clickhouse-client-cpp,由于数据是按列存储的,按列遍历的效率更好) 数组在内存中是按行储存的,按行遍历时可以由指向数组第一个 ...

  3. openjudge 二维数组右上坐下遍历(二维数组)

    二维数组右上左下遍历 查看 提交 统计 提问 总时间限制:  1000ms  内存限制:  65536kB 描述 给定一个row行col列的整数数组array,要求从array[0][0]元素开始,按 ...

  4. php如何判断二维数组为空,PHP判断数组为空的具体方式

    在学习PHP语言的时候,初学者往往会对数组感到一些棘手.不过在通过深入的学习之后,我们会发现,这些其实并没有想象中的困难.我们今天就要向大家介绍PHP判断数组为空的具体方式,希望能让新手们了解一些新知 ...

  5. php 二维数组为空,php 判断数组是否为空的几种方法

    PHP判断数组为空方法1:count($arr); count 如果输出为0的话 那么这个数组就是空的 下面就是简单的测试代码了. $arr = array(); echo count($arr); ...

  6. C语言中一维数组和二维数组的寻常遍历用指针的遍历

    前言 是突然想到的方法,可能早有大佬想过这样的方法,但我还是记录下来,路过的各位就当看个新鲜. 首先是寻常的遍历方法 一维数组 我们遍历一维数组,正常的方法是改变数组的下标依次打印遍历数组. 代码如下 ...

  7. 【C语言简单说】十九:二维数组循环嵌套(2)

    这节直接用循环嵌套来输出二维数组了: 注:我说的队和列并不是一般说法,我用此比喻好让新手更好理解. #include<stdio.h> #include<stdlib.h> i ...

  8. php三维数组转换二维数组,php 三维数组转二维数组(多维数组变合拼二维数组)(foreach循环 数组叠加)...

    /*************** * @function 三维数组转二维数组 * @Param: $array : 传入参数 * @Return: $tempArr 返回结果数组 ********** ...

  9. 二维数组的花式遍历技巧盘点

    学算法认准 labuladong 后台回复 进群 进刷题 读完本文,可以去力扣解决如下题目: 48. 旋转图像(中等) 54. 螺旋矩阵(中等) 59. 螺旋矩阵 II(中等) 有不少读者说,看过很多 ...

最新文章

  1. 小白的.Net Core 2.0 ConsoleApp入门(keng)指南(一)
  2. java 面试 框架_这份java集合框架面试题,轻松搞定面试官!
  3. md文件编辑器_可能是颜值最高的微信Markdown编辑器,用Markdown的你一定会爱上
  4. 《软件工程(C编码实践篇)》课后感
  5. leetcode -- medium part
  6. linux 蓝牙攻击,研究人员担心BleedingTooth蓝牙漏洞给Linux系统带来风险
  7. 【知识整理】这可能是最好的RxJava 2.x 入门教程(四)
  8. 【操作系统】对换、分页和分段方式-思维导图
  9. jquery操作复选框(checkbox)
  10. 关于SQL中Between语句查询日期的问题
  11. 中文编程专栏目录, 初衷和希冀
  12. 网络编程技术(技术总结)
  13. 班级管理系统(SSM+LayUI)
  14. java applet init_java applet init start
  15. java drag_[Java教程]一步一步理解拖拽Drag(四)
  16. python文件打包为deb_DEB包详解
  17. Java算法之 循序搜寻法
  18. 影响因子,计算机科学,影响因子最高计算机科学期刊(前50种).doc
  19. 为了结婚领证,我做了个「一键结婚」插件
  20. 统计学习方法 - 绪论部分

热门文章

  1. 毕业年限不长的前端焦虑和突破方法
  2. Java记录 -6- 流程控制语句
  3. sublime php语法检查
  4. Tomcat 下 Memcached 集群与 Terracotta 集群比较
  5. 一款不错的网站压力测试工具webbench
  6. 一句命令行检查cpu个数
  7. Android API 中文(14) —— ViewStub
  8. 一种在未来互联网中的面向用户的云操作系统体系
  9. 【推荐】BREW中 - 显示和图像
  10. [BZOJ4671]异或图