SoFunction
Updated on 2025-03-02

PHP array comparison method to find continuous numbers

This article describes the method of finding continuous numbers by comparing php arrays. Share it for your reference. The details are as follows:

$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");
//Judge more than 3 consecutivefunction checkAll($sourceArr2D) {
  $count = sizeof($sourceArr2D);
  for($i=0; $i<$count; $i++){
    check_h($sourceArr2D[$i], $i);//Find horizontal direction    if($i>0) {
      check_v($sourceArr2D, $i);// Find the vertical direction      check_l($sourceArr2D, $i);// Find/direction      check_r($sourceArr2D, $i);// Find the direction    }
  }
}
//Judge horizontal direction$h = array();// Save search results in the horizontal directionfunction 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 ){
    // Because the numbers in the array are not repeated and orderly, it is a trick      if(!$flag) {
        $h[$rownum] = array($arr[$i-2], $arr[$i-1], $arr[$i]);
        $flag = true;
      }else{
        array_push($h[$rownum], $arr[$i]);
      }
    }
  }
}
//Judge vertical direction$v = array();// Save search results in the vertical directionfunction 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++;
      }
    }
  }
}
// Judgment/Direction$l = array();// Save/Search results in directionfunction check_l() {
}
//Judge direction$r = array();// Save search results in the directionfunction check_r() {
}
// End the definition and start the applicationcheckAll($data);
echo
//Long-horizontal search:print_r($h);
echo
//Look in the vertical direction:print_r($v);
echo
//Looking in the direction:print_r($l);
echo
//Looking in the direction:print_r($r);

I hope this article will be helpful to everyone's PHP programming.