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
ThinkPHP php 框架学习笔记
Oct 30 PHP
PHP网站安装程序制作的原理、步骤、注意事项和示例代码
Aug 01 PHP
PHP中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述
Mar 23 PHP
PHP stream_context_create()作用和用法分析
Mar 29 PHP
PHP源代码数组统计count分析
Aug 02 PHP
PHP 登录记住密码实现思路
May 07 PHP
CodeIgniter中使用cookie的三种方式详解
Jul 18 PHP
JSON字符串传到后台PHP处理问题的解决方法
Jun 05 PHP
php从身份证获取性别和出生年月
Feb 09 PHP
php使用GD2绘制几何图形示例
Feb 15 PHP
PHP压缩图片功能的介绍
Mar 21 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 smarty truncate UTF8乱码问题解决办法
2014/06/13 PHP
实例详解PHP中html word 互转的方法
2016/01/28 PHP
php时间函数用法分析
2016/05/28 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
2017/11/14 PHP
php测试kafka项目示例
2020/02/06 PHP
简短几句 通俗解释javascript的闭包
2011/01/17 Javascript
jquery 操作DOM案例代码分享
2012/04/05 Javascript
到处都是jQuery选择器的年代 不了解它们的性能,行吗
2012/06/18 Javascript
js实现页面转发功能示例代码
2013/08/05 Javascript
js 判断js函数、变量是否存在的简单示例代码
2014/03/04 Javascript
ext combobox动态加载数据库数据(附前后台)
2014/06/17 Javascript
JS运动框架之分享侧边栏动画实例
2015/03/03 Javascript
JS实现随机乱撞彩色圆球特效的方法
2015/05/05 Javascript
JS实现的自定义水平滚动字体插件完整实例
2016/06/17 Javascript
jqGrid翻页时数据选中丢失问题的解决办法
2017/02/13 Javascript
鼠标拖动改变DIV等网页元素的大小的实现方法
2017/07/06 Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
2018/08/25 Javascript
详解微信小程序实现跑马灯效果(附完整代码)
2019/04/29 Javascript
小程序云函数调用API接口的方法
2019/05/17 Javascript
jQuery实现消息弹出框效果
2019/12/10 jQuery
解决vue无法侦听数组及对象属性的变化问题
2020/07/17 Javascript
jQuery+ThinkPHP实现图片上传
2020/07/23 jQuery
解决vue的router组件component在import时不能使用变量问题
2020/07/26 Javascript
解决element-ui的下拉框有值却无法选中的情况
2020/11/07 Javascript
python通过exifread模块获得图片exif信息的方法
2015/03/16 Python
Python复制文件操作实例详解
2015/11/10 Python
详解Django之auth模块(用户认证)
2018/04/17 Python
Linux下python3.6.1环境配置教程
2018/09/26 Python
pytorch学习教程之自定义数据集
2020/11/10 Python
使用 css3 transform 属性来变换背景图的方法
2019/05/07 HTML / CSS
Ralph Lauren英国官方网站:Ralph Lauren UK
2018/04/03 全球购物
Linux如何修改文件和文件夹的权限
2012/06/27 面试题
电力公司个人求职信范文
2014/02/04 职场文书
二年级上册数学教学计划
2015/01/20 职场文书
兼职安全员岗位职责
2015/02/15 职场文书
感恩教师节主题班会
2015/08/12 职场文书