3v4l.org

run code in 300+ PHP versions simultaneously
<?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 Searching from $bottomBoundry to $topBoundry\n"; if ($currItem == $needle) { echo "Found item in $moves moves!"; return $currPos; } else if ($currItem > $needle) { echo "LARGER! Let's go smaller! "; $topBoundry = $currPos; $currPos = floor(($currPos+$bottomBoundry)/2); $moves++; } else if ($currItem < $needle) { echo "SMALLER! Let's go larger! "; $bottomBoundry = $currPos; $currPos = ceil(($currPos+$topBoundry)/2); $moves++; } } } echo searchInArray($array, 420);
Output for 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.24 - 5.5.35, 5.6.8 - 5.6.28, 7.0.0 - 7.0.20, 7.1.0 - 7.1.10, 7.2.0 - 7.2.33, 7.3.12 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
Move: 0. Current: 50000:50001 Searching from 0 to 100000 LARGER! Let's go smaller! Move: 1. Current: 25000:25001 Searching from 0 to 50000 LARGER! Let's go smaller! Move: 2. Current: 12500:12501 Searching from 0 to 25000 LARGER! Let's go smaller! Move: 3. Current: 6250:6251 Searching from 0 to 12500 LARGER! Let's go smaller! Move: 4. Current: 3125:3126 Searching from 0 to 6250 LARGER! Let's go smaller! Move: 5. Current: 1562:1563 Searching from 0 to 3125 LARGER! Let's go smaller! Move: 6. Current: 781:782 Searching from 0 to 1562 LARGER! Let's go smaller! Move: 7. Current: 390:391 Searching from 0 to 781 SMALLER! Let's go larger! Move: 8. Current: 586:587 Searching from 390 to 781 LARGER! Let's go smaller! Move: 9. Current: 488:489 Searching from 390 to 586 LARGER! Let's go smaller! Move: 10. Current: 439:440 Searching from 390 to 488 LARGER! Let's go smaller! Move: 11. Current: 414:415 Searching from 390 to 439 SMALLER! Let's go larger! Move: 12. Current: 427:428 Searching from 414 to 439 LARGER! Let's go smaller! Move: 13. Current: 420:421 Searching from 414 to 427 LARGER! Let's go smaller! Move: 14. Current: 417:418 Searching from 414 to 420 SMALLER! Let's go larger! Move: 15. Current: 419:420 Searching from 417 to 420 Found item in 15 moves!419
Output for 5.0.0 - 5.0.5
Parse error: parse error, unexpected T_ARRAY, expecting '&' or T_VARIABLE in /in/VUldj on line 5
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_ARRAY, expecting ')' in /in/VUldj on line 5
Process exited with code 255.
Output for 4.3.0 - 4.3.1, 4.3.5 - 4.3.11, 4.4.0 - 4.4.1
Parse error: parse error, unexpected T_ARRAY, expecting ')' in /in/VUldj on line 5
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `')'' in /in/VUldj on line 5
Process exited with code 255.

preferences:
225.12 ms | 401 KiB | 312 Q