溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用php怎么在數(shù)組中查找連續(xù)數(shù)

發(fā)布時(shí)間:2021-03-19 16:20:02 來源:億速云 閱讀:151 作者:Leah 欄目:開發(fā)技術(shù)

這篇文章給大家介紹使用php怎么在數(shù)組中查找連續(xù)數(shù),內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

具體如下:

$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個(gè)以上的連續(xù) 
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();// 保存水平方向上的搜尋結(jié)果
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 ){
    // 因?yàn)閿?shù)組內(nèi)數(shù)字不重復(fù)且有序故可取巧
      if(!$flag) {
        $h[$rownum] = array($arr[$i-2], $arr[$i-1], $arr[$i]);
        $flag = true;
      }else{
        array_push($h[$rownum], $arr[$i]);
      }
    }
  }
}
// 判斷豎直方向
$v = array();// 保存豎直方向上的搜尋結(jié)果
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();// 保存/方向上的搜尋結(jié)果
function check_l() {
}
// 判斷方向
$r = array();// 保存方向上的搜尋結(jié)果
function check_r() {
}
// 結(jié)束定義,開始應(yīng)用
checkAll($data);
echo
//水平方向上的找尋:
print_r($h);
echo
//豎直方向上的找尋:
print_r($v);
echo
//方向上的找尋:
print_r($l);
echo
//方向上的找尋:
print_r($r);

關(guān)于使用php怎么在數(shù)組中查找連續(xù)數(shù)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI