flatten()

Flatten operator iterates over given stream of iterables and yields each item from each iterable in a single flat sequence.

By default, keys from inner iterables are not preserved, which can be overridden in constructor.

class RunOpenCode\Component\Dataset\Operator\Flatten
__construct(iterable<mixed, iterable<TKey, TValue>> $source, bool $preserveKeys = false)
Parameters:
  • $sourceiterable<mixed, iterable<TKey, TValue>> Stream of streams to iterate over.

  • $preserveKeysbool Should keys be preserved from the flattened stream, false by default.

getIterator()
Returns:

\Traversable<TKey, TValue> or \Traversable<int, TValue> Flattened stream.

Use cases

  • Use this operator to flatten nested structures, per example, to flatten buffer.

Example

1<?php
2
3new Stream($dataset)
4    ->bufferCount(100)
5    ->tap(function(Buffer $buffer): void {
6        // Do a batch processing...
7    })
8    ->flatten(); // Continue with original stream.