PHP判断两个有序数组中是否存在相同的数字示例代码分析
<?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判断两个有序数组中是否存在相同的数字示例代码分析的详细内容。更多信息请关注PHP中文网其他相关文章!