HH\Map::zip
Returns a Map
where each value is a Pair
that combines the value
of the current Map
and the provided Traversable
public function zip<Tu>(
Traversable<Tu> $traversable,
): Map<Tk, Pair<Tv, Tu>>;
If the number of values of the current Map
are not equal to the number
of elements in the Traversable
, then only the combined elements up to
and including the final element of the one with the least number of
elements is included.
The keys associated with the current Map
remain unchanged in the
returned Map
.
Parameters
Traversable<Tu>
$traversable
- TheTraversable
to use to combine with the elements of the currentMap
.
Returns
Map<Tk,
Pair<Tv, Tu>>
- TheMap
that combines the values of the currentMap
with the providedTraversable
.
Examples
This example shows how zip
combines the values of the Map
and another Traversable
. The resulting Map
$labeled_colors
has three elements because $labels
doesn't have a fourth element to pair with $m
.
$m = Map {
'red' => '#ff0000',
'green' => '#00ff00',
'blue' => '#0000ff',
'yellow' => '#ffff00',
'purple' => '#663399',
};
$labels = Vector {'My Favorite', 'My 2nd Favorite', 'My 3rd Favorite'};
$labeled_colors = $m->zip($labels);
\var_dump($labeled_colors->count()); // 3
foreach ($labeled_colors as $color => $pair) {
$hex_code = $pair[0];
$label = $pair[1];
echo "{$label}: {$color} ($hex_code)\n";
}