How to find data in a two-dimensional ordered array in php (code)

不言
Release: 2023-04-04 08:00:02
Original
2503 people have browsed it

The content of this article is about how to find data (code) in a two-dimensional ordered array in PHP. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you. .

In a two-dimensional array (each one-dimensional array is the same length), each row is sorted in increasing order from left to right, and each column is sorted in increasing order from top to bottom. Please complete a function, input such a two-dimensional array and an integer, and determine whether the array contains the integer.
1. Two-dimensional array, row increases from left to right, column col increases from top to bottom
2. Define the lower left corner as the comparison point, and the one larger than it is located on the right of it, so col , and col< =arr[0].length-1
3. Smaller than the lower left corner is located above it, so row--,row>=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
Copy after login
<?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);
Copy after login
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)
  }
}
Copy after login

Related recommendations:

PHP Bubble sort Binary search Sequential search Detailed explanation of two-dimensional array sorting algorithm function

Two-dimensional array Implementation of alphabetical sorting of two-dimensional arrays in PHP sorting Code

The above is the detailed content of How to find data in a two-dimensional ordered array in php (code). For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template