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

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

rush: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","31"); $data[]=array("04","05","07","10","13","25"); $data[]=array("02","04","08","19","22"); $data[]=array("03","15","25","30"); $data[]=array("01","03","06","12","32"); $data[]=array("01","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程序设计有所帮助。

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...