php数组比较实现查找连续数的方法


Posted in PHP onJuly 29, 2015

本文实例讲述了php数组比较实现查找连续数的方法。分享给大家供大家参考。具体如下:

$data = array();
$data[]= array("01" ,"02", "18" , "29" , "31" , "32");
$data[]= array("02" ,"09", "11" , "22" , "24" , "27");
$data[]= array("07" ,"16", "26" , "27" , "29" , "31");
$data[]=array("04", "05", "07", "10", "13", "25");
$data[]=array("02", "04", "05", "08", "19", "22");
$data[]=array("03", "04", "15", "25", "26", "30");
$data[]=array("01", "03", "06", "12", "16", "32");
$data[]=array("01", "05", "14", "17", "22");
// 判断表格中3个以上的连续 
function checkAll($sourceArr2D) {
  $count = sizeof($sourceArr2D);
  for($i=0; $i<$count; $i++){
    check_h($sourceArr2D[$i], $i);//找寻水平方向
    if($i>0) {
      check_v($sourceArr2D, $i);// 找寻竖直方向
      check_l($sourceArr2D, $i);// 找寻/方向
      check_r($sourceArr2D, $i);// 找寻方向
    }
  }
}
// 判断水平方向
$h = array();// 保存水平方向上的搜寻结果
function check_h($arr, $rownum) {
  //sort($arr, SORT_NUMERIC);
  global $h;
  $flag = false;
  for($i=2; $i<6; $i++){
    if( $arr[$i-2]==$arr[$i]-2 ){
    // 因为数组内数字不重复且有序故可取巧
      if(!$flag) {
        $h[$rownum] = array($arr[$i-2], $arr[$i-1], $arr[$i]);
        $flag = true;
      }else{
        array_push($h[$rownum], $arr[$i]);
      }
    }
  }
}
// 判断竖直方向
$v = array();// 保存竖直方向上的搜寻结果
function check_v($sourceArr2D, $rownum) {
  global $v;
  for($i=0; $i<6; $i++){
    $val = $sourceArr2D[$rownum][$i];
    if( in_array($rownum...$val, $v) ){
      continue;
    }
    if( in_array($val,$sourceArr2D[$rownum-1]) && in_array($val,$sourceArr2D[$rownum+1]) ){
      array_push($v, ($rownum-1)...$val, $rownum...$val, ($rownum+1)...$val);
      $tmp = $rownum + 2;
      while( ($tmp < sizeof($sourceArr2D)) && in_array($val, $sourceArr2D[$tmp]) ){
        array_push($v, $tmp...$val);
        $tmp++;
      }
    }
  }
}
// 判断/方向
$l = array();// 保存/方向上的搜寻结果
function check_l() {
}
// 判断方向
$r = array();// 保存方向上的搜寻结果
function check_r() {
}
// 结束定义,开始应用
checkAll($data);
echo
//水平方向上的找寻:
print_r($h);
echo
//竖直方向上的找寻:
print_r($v);
echo
//方向上的找寻:
print_r($l);
echo
//方向上的找寻:
print_r($r);

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
php批量删除数据
Jan 18 PHP
php木马webshell扫描器代码
Jan 25 PHP
php的数组与字符串的转换函数整理汇总
Jul 18 PHP
Laravel框架数据库CURD操作、连贯操作总结
Sep 03 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
Feb 14 PHP
php通过curl模拟登陆DZ论坛
May 11 PHP
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
Dec 23 PHP
对比分析php中Cookie与Session的异同
Feb 19 PHP
浅析php设计模式之数据对象映射模式
Mar 03 PHP
弹出模态框modal的实现方法及实例
Sep 19 PHP
PHP封装的XML简单操作类完整实例
Nov 13 PHP
php获取ajax的headers方法与内容实例
Dec 27 PHP
PHP实现XML与数据格式进行转换类实例
Jul 29 #PHP
PHP获取某个月最大天数(最后一天)的方法
Jul 29 #PHP
discuz图片顺序混乱解决方案
Jul 29 #PHP
php计算title标题相似比的方法
Jul 29 #PHP
PHP实现简单实用的验证码类
Jul 29 #PHP
php使用gzip压缩传输js和css文件的方法
Jul 29 #PHP
PHP实现加强版加密解密类实例
Jul 29 #PHP
You might like
基于PHP遍历数组的方法汇总分析
2013/06/08 PHP
php无限极分类递归排序实现方法
2014/11/11 PHP
php单态设计模式(单例模式)实例
2014/11/18 PHP
PHP生成静态HTML页面最简单方法示例
2015/04/09 PHP
PHP中把错误日志保存在系统日志中(Windows系统)
2015/06/23 PHP
从刷票了解获得客户端IP的方法
2015/09/21 PHP
javascript arguments 传递给函数的隐含参数
2009/08/21 Javascript
到处都是jQuery选择器的年代 不了解它们的性能,行吗
2012/06/18 Javascript
使用javascript创建快捷方式的简单实例
2013/08/09 Javascript
简单的js图片轮换代码(js图片轮播)
2014/05/06 Javascript
jquery实现点击变换导航样式的方法
2015/08/31 Javascript
根据Bootstrap Paginator改写的js分页插件
2016/12/25 Javascript
js仿新浪微博消息发布功能
2017/02/17 Javascript
Ajax实现不刷新取最新商品
2017/03/01 Javascript
js/jq仿window文件夹框选操作插件
2017/03/08 Javascript
详解vue.js移动端导航navigationbar的封装
2017/07/05 Javascript
layui实现文件或图片上传记录
2018/08/28 Javascript
新手如何快速理解js异步编程
2019/06/24 Javascript
layui动态渲染生成左侧3级菜单的方法(根据后台返回数据)
2019/09/23 Javascript
Vue优化:常见会导致内存泄漏问题及优化详解
2020/08/04 Javascript
详解微信小程序(Taro)手动埋点和自动埋点的实现
2021/03/02 Javascript
Python使用chardet判断字符编码
2015/05/09 Python
关于python的list相关知识(推荐)
2017/08/30 Python
说说如何遍历Python列表的方法示例
2019/02/11 Python
Python队列RabbitMQ 使用方法实例记录
2019/08/05 Python
英国美术用品购物网站:Cass Art
2019/10/08 全球购物
课程设计心得体会
2013/12/28 职场文书
二年级数学教学反思
2014/01/21 职场文书
四年级下册教学反思
2014/02/01 职场文书
岗位职责风险点
2014/03/12 职场文书
新学期开学演讲稿
2014/05/24 职场文书
党员对照检查材料整改措施思想汇报
2014/09/26 职场文书
铁人纪念馆观后感
2015/06/16 职场文书
2015年清剿火患专项行动工作总结
2015/07/27 职场文书
董事长秘书工作总结
2015/08/14 职场文书
反邪教学习心得体会
2016/01/15 职场文书