php数组比较实现查找连续数的方法
author:一佰互联 2019-04-27   click:163

本文实例讲述了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程序设计有所帮助。