/** * @chainable * @category Collections * @param array $xs * @param callable|string $f * @return Iterator */ public static function groupBy($xs, $f = null) { return new Iterator\DeferIterator(function () use($xs, $f) { return new \ArrayIterator(ArrayImpl::groupBy($xs, $f)); }); }
/** * @chainable * @category Collections * @param array $xs * @param callable|string $f * @return Generator */ public static function groupBy($xs, $f = null) { foreach (ArrayImpl::groupBy($xs, $f) as $k => $x) { (yield $k => $x); } }