微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

原文地址:https://www.jb51.cc/php/21400.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐