$ ARR = [1,2,3,3,4,5,6]。 関数binSearch($ ARR、$ NUM、$開始、$端){ IF($開始> $端){ リターン-1。 } $ミッド=フロア(($ / 2)+ $端を開始します)。 $ midValue = $ arrが[$中旬]。 IF($ NUM <$ midValue){ $ミッド= $ミッド1。 リターンbinSearch($ ARRは、$ numが、$、$中旬開始します)。 } ELSEIF($ NUM> $ midValue){ $ミッド= $ミッド+ 1。 binSearch($ arrが、$ NUM、$半ば、$ end)を返します。 }他{ IF($中間== 0 || $ NUM = $ ARR [$半ば1]!){ 戻り$ミッド。 }他{ リターンbinSearch($ ARR、$ NUM、$、$半ば1を起動します)。 } } } $スタート= 0; $終了=カウント($ ARR)-1; $インデックス= binSearch($ ARR、3、$開始、$エンド); $インデックスをエコー。