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执行速度全攻略(下)
Oct 09 PHP
实现分十页分向前十页向后十页的处理
Oct 09 PHP
escape unescape的php下的实现方法
Apr 27 PHP
Discuz板块横排显示图片的实现方法
May 28 PHP
用PHP ob_start()控制浏览器cache、生成html实现代码
Feb 16 PHP
php自动获取字符串编码函数mb_detect_encoding
May 31 PHP
基于php常用正则表达式的整理汇总
Jun 08 PHP
PHP中通过fopen()函数访问远程文件示例
Nov 18 PHP
WordPress分页伪静态加html后缀
Jun 08 PHP
php表单加入Token防止重复提交的方法分析
Oct 10 PHP
php异常处理捕获错误整理
Sep 23 PHP
ThinkPHP3.1.2 使用cli命令行模式运行的方法
Apr 14 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 session 预定义数组
2009/03/16 PHP
vs中通过剪切板循环来循环粘贴不同内容
2011/04/30 PHP
php变量范围介绍
2012/10/15 PHP
使用PHP编写的SVN类
2013/07/18 PHP
php实现在服务器上创建目录的方法
2015/03/16 PHP
php实现mysql数据库连接操作及用户管理
2015/11/08 PHP
yii2.0整合阿里云oss删除单个文件的方法
2017/09/19 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
Web开发者必备的12款超赞jQuery插件
2010/12/03 Javascript
jQuery实战之品牌展示列表效果
2011/04/10 Javascript
Highcharts 非常实用的Javascript统计图demo示例
2013/07/03 Javascript
网站404页面3秒后跳到首页的实例代码
2013/08/16 Javascript
JS实现漂亮的时间选择框效果
2016/08/20 Javascript
form+iframe解决跨域上传文件的方法
2016/11/18 Javascript
使用JavaScript实现点击循环切换图片效果
2017/09/03 Javascript
深入理解ES6 Promise 扩展always方法
2017/09/26 Javascript
基于node下的http小爬虫的示例代码
2018/01/11 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
2018/04/08 Javascript
微信小程序实现列表左右滑动
2020/11/19 Javascript
Python修改Excel数据的实例代码
2013/11/01 Python
PyQt5每天必学之弹出消息框
2018/04/19 Python
python实现批量图片格式转换
2020/06/16 Python
解决PyCharm控制台输出乱码的问题
2019/01/16 Python
PyQt5实现类似别踩白块游戏
2019/01/24 Python
Python3中exp()函数用法分析
2019/02/19 Python
HTML5 标准将把互联网视频扔回到黑暗时代
2010/02/10 HTML / CSS
UNOde50美国官网:西班牙珠宝品牌
2020/08/15 全球购物
团支书的期末学习总结自我评价
2013/11/01 职场文书
植树节口号
2014/06/21 职场文书
本科毕业生应聘求职信
2014/07/06 职场文书
参加招聘会后的感想
2015/08/10 职场文书
趣味运动会广播稿
2015/08/19 职场文书
手把手教你实现PyTorch的MNIST数据集
2021/06/28 Python
SQL之各种join小结详细讲解
2021/08/04 MySQL
python读取并查看npz/npy文件数据以及数据显示方法
2022/04/14 Python
Mysql 一主多从的部署
2022/05/20 MySQL