Home > Article > Backend Development > How to find data in a two-dimensional ordered array in php (code)
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 col1134d22ecee47b1e124999916d857561=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) } }
Related recommendations:
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!