3v4l.org

run code in 300+ PHP versions simultaneously
<?php final class ArrayUtils { private static $visited = []; private static $sum = 0; public static function containsSum($data, $sum) { self::$visited = []; self::$sum = $sum; return array_reduce($data, 'ArrayUtils::reduce', false); } private static function reduce($carry, $item) { $carry |= isset(self::$visited[self::$sum - $item]); self::$visited[$item] = true; return (bool) $carry; } } $data = range(0, 49999); shuffle($data); var_dump(ArrayUtils::containsSum($data, 1234)); var_dump(ArrayUtils::containsSum($data, -15));
Output for 5.6.38, 7.1.0 - 7.1.33, 7.2.0 - 7.2.25, 7.3.0 - 7.3.12, 7.4.0
bool(true) bool(false)

preferences:
95.05 ms | 402 KiB | 73 Q