3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php $array = range(1,100000); //100k items, ordered. function searchInArray(array $haystack, $needle) { $needle = (int)$needle; $currPos = (int)(count($haystack) / 2); $topBoundry = count($haystack); $bottomBoundry = 0; $moves = 0; while ($currPos >= $bottomBoundry && $currPos <= $topBoundry) { $currItem = $haystack[$currPos]; echo "Move: $moves. Current: $currPos:$currItem\n"; if ($currItem == $needle) { echo "Found item in $moves moves!"; return $currPos; } else if ($currItem > $needle) { $currPos -= floor($currPos/2); $moves++; } else if ($currItem < $needle) { $currPos += ceil($currPos/2); $moves++; } } } echo searchInArray($array, 420);