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: 1563:1564 Searching from 0 to 3125 LARGER! Let's go smaller! Move: 6. Current: 782:783 Searching from 0 to 1563 LARGER! Let's go smaller! Move: 7. Current: 391:392 Searching from 0 to 782 SMALLER! Let's go larger!

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:
43.35 ms | 402 KiB | 8 Q