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 相关文章推荐
解决MySQL中文输出变成问号的问题
Jun 05 PHP
PHP获取网站域名和地址的代码
Aug 17 PHP
PHP入门学习笔记之一
Oct 12 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
Jun 13 PHP
解析在apache里面给php写虚拟目录的详细方法
Jun 24 PHP
PHP mail()函数使用及配置方法
Jan 14 PHP
PHP 只允许指定IP访问(允许*号通配符过滤IP)
Jul 08 PHP
PHP学习笔记(二) 了解PHP的基本语法以及目录结构
Aug 04 PHP
初识php MVC
Sep 10 PHP
PHP分页类集锦
Nov 18 PHP
PHP实现过滤掉非汉字字符只保留中文字符
Jun 04 PHP
PHP多线程模拟实现秒杀抢单
Feb 07 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/02/03 PHP
php实现微信支付之企业付款
2018/05/30 PHP
Yii框架模拟组件调用注入示例
2019/11/11 PHP
javascript读取xml
2006/11/04 Javascript
Dojo之路:如何利用Dojo实现Drag and Drop效果
2007/04/10 Javascript
JavaScript类型转换方法及需要注意的问题小结(挺全面)
2010/11/11 Javascript
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
2013/06/06 Javascript
JavaScript获取多个数组的交集简单实例
2013/11/11 Javascript
浅析node.js中close事件
2014/11/26 Javascript
JS实现的车标图片提示效果代码
2015/10/10 Javascript
Express框架之connect-flash详解
2017/05/31 Javascript
JavaScript字符串检索字符的方法
2017/06/23 Javascript
bootstrap table支持高度百分比的实例代码
2018/02/28 Javascript
layerUI下的绑定事件实例代码
2018/08/17 Javascript
vue组件之间的数据传递方法详解
2019/04/19 Javascript
koa+mongoose实现简单增删改查接口的示例代码
2019/05/13 Javascript
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
2019/06/06 jQuery
jQuery实现判断滚动条滚动到document底部的方法分析
2019/08/27 jQuery
浅谈JavaScript 声明提升
2020/09/14 Javascript
提升Python程序运行效率的6个方法
2015/03/31 Python
Python使用修饰器执行函数的参数检查功能示例
2017/09/26 Python
快速查询Python文档方法分享
2017/12/27 Python
python如何为被装饰的函数保留元数据
2018/03/21 Python
对numpy中数组转置的求解以及向量内积计算方法
2018/10/31 Python
Python一个简单的通信程序(客户端 服务器)
2019/03/06 Python
OpenCV+face++实现实时人脸识别解锁功能
2019/08/28 Python
浅谈Python中的字符串
2020/06/10 Python
如何将json数据转换为python数据
2020/09/04 Python
宗教学大学生职业生涯规划范文
2014/02/08 职场文书
文科生自我鉴定
2014/02/15 职场文书
平安建设实施方案
2014/03/19 职场文书
校运动会广播稿300字
2014/10/07 职场文书
2014酒店客房部工作总结
2014/12/16 职场文书
员工辞退通知书
2015/04/17 职场文书
mysql事务隔离级别详情
2021/10/24 MySQL
《勇者辞职不干了》ED主题曲无字幕动画MV公开
2022/04/13 日漫