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

前端之家收集整理的这篇文章主要介绍了php数组比较实现查找连续数的方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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程序设计有所帮助。

猜你在找的PHP相关文章