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 相关文章推荐
openPNE常用方法分享
Nov 29 PHP
php curl的深入解析
Jun 02 PHP
详解PHP内置访问资源的超时时间 time_out file_get_contents read_file
Jun 03 PHP
php解析json数据实例
Aug 19 PHP
php实现通用的信用卡验证类
Mar 24 PHP
php实现的IMEI限制的短信验证码发送类
May 05 PHP
PHP中的密码加密的解决方案总结
Oct 26 PHP
php的socket编程详解
Nov 20 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
Jun 10 PHP
PHP设计模式之适配器模式原理与用法分析
Apr 25 PHP
PHP保留两位小数的几种方法
Jul 24 PHP
laravel 实现向公共模板中传值 (view composer)
Oct 22 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系统流量分析的程序
2006/10/09 PHP
php REMOTE_ADDR之获取访客IP的代码
2008/04/22 PHP
PHP 正则表达式常用函数
2014/08/17 PHP
PHP实现ftp上传文件示例
2014/08/21 PHP
大家须知简单的php性能优化注意点
2016/01/04 PHP
Smarty3配置及入门语法
2017/02/22 PHP
Laravel + Elasticsearch 实现中文搜索的方法
2020/02/02 PHP
PHP ob缓存以及ob函数原理实例解析
2020/11/13 PHP
javascript的事件描述
2006/09/08 Javascript
JavaScript—window对象使用示例
2013/12/09 Javascript
JavaScript实现添加及删除事件的方法小结
2015/08/04 Javascript
基于Three.js插件制作360度全景图
2016/11/29 Javascript
vue.js的提示组件
2017/03/02 Javascript
Javascript操作dom对象之select全面解析
2017/04/24 Javascript
详解Vue2.X的路由管理记录之 钩子函数(切割流水线)
2017/05/02 Javascript
JS设置手机验证码60s等待实现代码
2017/06/14 Javascript
JS实现新建文件夹功能
2017/06/17 Javascript
使用weixin-java-tools完成微信授权登录、微信支付的示例
2018/09/26 Javascript
深入Node TCP模块的理解
2019/03/13 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
2019/05/09 Javascript
vue通过video.js解决m3u8视频播放格式的方法
2019/07/30 Javascript
Django1.7+python 2.78+pycharm配置mysql数据库教程
2014/11/18 Python
TensorFlow实现Batch Normalization
2018/03/08 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
2018/07/02 Python
解决Mac下首次安装pycharm无project interpreter的问题
2018/10/29 Python
Django  ORM 练习题及答案
2019/07/19 Python
Django自定义列表 models字段显示方式
2020/04/03 Python
香港No.1得奖零食网:香港零食大王
2016/07/22 全球购物
Carter’s官方旗舰店:美国受欢迎的婴童服装品牌
2018/01/21 全球购物
韩国11街:11STREET
2018/03/27 全球购物
Hotels.com拉丁美洲:从豪华酒店到经济型酒店的预定优惠和折扣
2019/12/09 全球购物
汇科协同Java笔试题
2012/03/31 面试题
售后专员岗位职责
2013/12/08 职场文书
大学生创业计划书的用途
2014/01/08 职场文书
党的生日演讲稿
2014/09/10 职场文书
vue使用v-model进行跨组件绑定的基本实现方法
2021/04/28 Vue.js