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 git.master, git.master_jit, rfc.property-hooks
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

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
45.44 ms | 404 KiB | 8 Q