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 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 - 7.1.0
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!
Output for 5.0.0 - 5.0.5
Parse error: parse error, unexpected T_ARRAY, expecting '&' or T_VARIABLE in /in/bMQ8B 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/bMQ8B on line 5
Process exited with code 255.
Output for 4.3.0 - 4.3.1, 4.3.5 - 4.4.1
Parse error: parse error, unexpected T_ARRAY, expecting ')' in /in/bMQ8B on line 5
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `')'' in /in/bMQ8B on line 5
Process exited with code 255.