ホームページ >バックエンド開発 >PHPチュートリアル >PHPで2次元の順序付けされた配列内のデータを検索する方法(コード)

PHPで2次元の順序付けされた配列内のデータを検索する方法(コード)

不言
不言オリジナル
2018-09-15 17:01:352536ブラウズ

この記事の内容は、PHP で 2 次元順序配列内のデータ (コード) を見つける方法に関するもので、一定の参考値があり、困っている友人が参照することができます。 。

2 次元配列 (各 1 次元配列は同じ長さ) では、各行は左から右へ昇順に並べ替えられ、各列は上から下へ昇順に並べ替えられます。関数を完成させ、二次元配列と整数を入力し、配列に整数が含まれているかどうかを判定してください。
1. 2 次元配列、行は左から右に増加し、列の列は上から下に増加します
2. 左下隅を比較ポイントとして定義し、それより大きい隅を右側に配置しますそのため、col と、col05911942100c2d0340120025a83257a1=0

col=0
row=arr.length-1
while row>=0&&col<=arr[0].length-1
    if key==arr[row][col]
        return true
    elseif key>arr[row][col]
        col++
    else
        row-
return false
<?php
//构造一个从上到下,从左到右递增的数组
$arr=array();
$flag=0;
for($i=0;$i<10;$i++){
        $flag=$i*10;
        for($j=0;$j<10;$j++){
                $flag++;
                $arr[$i][]=$flag;
        }   
}
//生成了一个1到100的二维数组

function Find($target, $array){
        $col=0;
        $row=count($array)-1;
        while($row>=0 && $col<=count($array[0])-1){
                if($target==$array[$row][$col]){
                        return array($row,$col);
                }elseif($target>$array[$row][$col]){
                        $col++;
                }else{
                        $row--;
                }   
        }   
        return false;
}
//输出行,列
var_dump(Find(50,$arr));
var_dump($arr);
array(2) {
  [0]=>
  int(4)
  [1]=>
  int(9)
}array(10) {
  [0]=>  array(10) {
    [0]=>
    int(1)
    [1]=>
    int(2)
    [2]=>
    int(3)
    [3]=>
    int(4)
    [4]=>
    int(5)
    [5]=>
    int(6)
    [6]=>
    int(7)
    [7]=>
    int(8)
    [8]=>
    int(9)
    [9]=>
    int(10)
  }
  [1]=>  array(10) {
    [0]=>
    int(11)
    [1]=>
    int(12)
    [2]=>
    int(13)
    [3]=>
    int(14)
    [4]=>
    int(15)
    [5]=>
    int(16)
    [6]=>
    int(17)
    [7]=>
    int(18)
    [8]=>
    int(19)
    [9]=>
    int(20)
  }
  [2]=>  array(10) {
    [0]=>
    int(21)
    [1]=>
    int(22)
    [2]=>
    int(23)
    [3]=>
    int(24)
    [4]=>
    int(25)
    [5]=>
    int(26)
    [6]=>
    int(27)
    [7]=>
    int(28)
    [8]=>
    int(29)
    [9]=>
    int(30)
  }
  [3]=>  array(10) {
    [0]=>
    int(31)
    [1]=>
    int(32)
    [2]=>
    int(33)
    [3]=>
    int(34)
    [4]=>
    int(35)
    [5]=>
    int(36)
    [6]=>
    int(37)
    [7]=>
    int(38)
    [8]=>
    int(39)
    [9]=>
    int(40)
  }
  [4]=>  array(10) {
    [0]=>
    int(41)
    [1]=>
    int(42)
    [2]=>
    int(43)
    [3]=>
    int(44)
    [4]=>
    int(45)
    [5]=>
    int(46)
    [6]=>
    int(47)
    [7]=>
    int(48)
    [8]=>
    int(49)
    [9]=>
    int(50)
  }
  [5]=>  array(10) {
    [0]=>
    int(51)
    [1]=>
    int(52)
    [2]=>
    int(53)
    [3]=>
    int(54)
    [4]=>
    int(55)
    [5]=>
    int(56)
    [6]=>
    int(57)
    [7]=>
    int(58)
    [8]=>
    int(59)
    [9]=>
    int(60)
  }
  [6]=>  array(10) {
    [0]=>
    int(61)
    [1]=>
    int(62)
    [2]=>
    int(63)
    [3]=>
    int(64)
    [4]=>
    int(65)
    [5]=>
    int(66)
    [6]=>
    int(67)
    [7]=>
    int(68)
    [8]=>
    int(69)
    [9]=>
    int(70)
  }
  [7]=>  array(10) {
    [0]=>
    int(71)
    [1]=>
    int(72)
    [2]=>
    int(73)
    [3]=>
    int(74)
    [4]=>
    int(75)
    [5]=>
    int(76)
    [6]=>
    int(77)
    [7]=>
    int(78)
    [8]=>
    int(79)
    [9]=>
    int(80)
  }
  [8]=>  array(10) {
    [0]=>
    int(81)
    [1]=>
    int(82)
    [2]=>
    int(83)
    [3]=>
    int(84)
    [4]=>
    int(85)
    [5]=>
    int(86)
    [6]=>
    int(87)
    [7]=>
    int(88)
    [8]=>
    int(89)
    [9]=>
    int(90)
  }
  [9]=>  array(10) {
    [0]=>
    int(91)
    [1]=>
    int(92)
    [2]=>
    int(93)
    [3]=>
    int(94)
    [4]=>
    int(95)
    [5]=>
    int(96)
    [6]=>
    int(97)
    [7]=>
    int(98)
    [8]=>
    int(99)
    [9]=>
    int(100)
  }
}

関連する推奨事項:

PHP バブル ソート 二分探索 逐次探索 2 次元配列ソート アルゴリズム関数の詳細説明

2 次元array PHP ソートコードでの 2 次元配列のアルファベット順ソートの実装コード

以上がPHPで2次元の順序付けされた配列内のデータを検索する方法(コード)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。