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中文網其他相關文章!