$value) { if ($callback($value, $key)) { return true; } } return false; } /** * Checks if a callback returns true for all item in a collection. * @param callable(mixed $value, string|number $key): bool $callback */ function every(iterable $collection, callable $callback): bool { foreach ($collection as $key => $value) { if (! $callback($value, $key)) { return false; } } return true; } /** * @template T * @template R * @param iterable $collection * @param callable(T $value, string|number $key): R $callback * @return R[] */ function map(iterable $collection, callable $callback): array { $aggregation = []; foreach ($collection as $key => $value) { $aggregation[$key] = $callback($value, $key); } return $aggregation; }