时间:2021-07-01 10:21:17 帮助过:26人阅读
<?php
$len1 = sizeof($arr1);
$len2 = sizeof($arr2);
$flag = false; //用来退出外层循环
$start = 0;
$counter = 0;
for($i = 0; $i < $len1; $i++) {
if($flag) {
break;
}
// $start 记录上次循环到的索引
for($j = $start; $j < $len2; $j++) {
if($arr2[$j] == $arr1[$i]) {
echo 'find, ', $arr2[$j];
$flag = true;
break;
}
// 用 $counter 来控制次数,当前内循环中仅记录一次
if($arr2[$j] > $arr1[$i] && $counter == 0) {
$start = $j;
$counter++;
}
}
$counter = 0; //下一次循环开始,重置为0
}方法二:
思路:首先设两个下标,分别初始化为两个数组的起始地址,依次向前推进。推进的规则是比较两个数组中的数字,小的那个数组的下标向前推进一步,直到任何一个数组的下标到达数组末尾时,如果这时还没碰到相同的数字,说明数组中没有相同的数字。
<?php
$i = $j = 0;
$len1 = count($arr1);
$len2 = count($arr2);
while($i < $len1 && $j < $len2) {
if($arr1[$i] == $arr2[$j]) {
echo 'find, ', $arr1[$i];
break;
}
if($arr1[$i] > $arr2[$j]) {
$j ++;
}
else {
$i ++;
}
}以上就是PHP判断两个有序数组中是否存在相同的数字示例代码分析的详细内容,更多请关注Gxl网其它相关文章!