merge()

Merges two streaming sources into a single stream, yielding items from both sources.

class RunOpenCode\Component\Dataset\Operator\Merge
__construct(iterable<TKey1, TValue1> $first, iterable<TKey2, TValue2> $second)
Parameters:
  • $firstiterable<TKey1, TValue1> First stream source to iterate over.

  • $seconditerable<TKey2, TValue2> Second stream source to iterate over.

getIterator()
Returns:

\Traversable<TKey1|TKey2, TValue1|TValue2> Stream containing keys and values from both sources.

Use cases

  • Combine two stream sources into one.

Example

Combine client records from a sharded database to produce a single consolidated report for all clients.

1<?php
2
3$usClients = $usDbConnection->execute('SELECT ...');
4$euClients = $euDbConnection->execute('SELECT ...');
5
6new Stream($usClients)
7    ->merge($euClients);