\Cake\Collection\IteratorZipIterator

Creates an iterator that returns elements grouped in pairs

Example

 $iterator = new ZipIterator([[1, 2], [3, 4]]);
 $iterator->toList(); // Returns [[1, 3], [2, 4]]

You can also chose a custom function to zip the elements together, such as doing a sum by index:

Example

 $iterator = new ZipIterator([[1, 2], [3, 4]], function ($a, $b) {
   return $a + $b;
 });
 $iterator->toList(); // Returns [4, 6]

Summary

Methods
Properties
Constants
each()
filter()
reject()
every()
some()
contains()
map()
reduce()
extract()
max()
min()
avg()
median()
sortBy()
groupBy()
indexBy()
countBy()
sumOf()
shuffle()
sample()
take()
skip()
match()
firstMatch()
first()
last()
takeLast()
append()
appendItem()
prepend()
prependItem()
combine()
nest()
insert()
toArray()
toList()
jsonSerialize()
compile()
lazy()
buffered()
listNested()
stopWhen()
unfold()
through()
zip()
zipWith()
chunk()
chunkWithKeys()
isEmpty()
unwrap()
_unwrap()
cartesianProduct()
transpose()
count()
countKeys()
__construct()
current()
serialize()
unserialize()
No public properties found
No constants found
optimizeUnwrap()
$_callback
$_iterators
N/A
No private methods found
No private properties found
N/A

Properties

$_callback

$_callback : callable

The function to use for zipping items together

Type

callable

$_iterators

$_iterators : array

Contains the original iterator objects that were attached

Type

array

Methods

each()

each(callable  $c) 

{@inheritDoc}

Parameters

callable $c

every()

every(callable  $c) 

{@inheritDoc}

Parameters

callable $c

some()

some(callable  $c) 

{@inheritDoc}

Parameters

callable $c

contains()

contains(  $value) 

{@inheritDoc}

Parameters

$value

reduce()

reduce(callable  $c,   $zero = null) 

{@inheritDoc}

Parameters

callable $c
$zero

extract()

extract(  $matcher) 

{@inheritDoc}

Parameters

$matcher

max()

max(  $callback,   $type = \SORT_NUMERIC) 

{@inheritDoc}

Parameters

$callback
$type

min()

min(  $callback,   $type = \SORT_NUMERIC) 

{@inheritDoc}

Parameters

$callback
$type

avg()

avg(  $matcher = null) 

{@inheritDoc}

Parameters

$matcher

median()

median(  $matcher = null) 

{@inheritDoc}

Parameters

$matcher

sortBy()

sortBy(  $callback,   $dir = \SORT_DESC,   $type = \SORT_NUMERIC) 

{@inheritDoc}

Parameters

$callback
$dir
$type

groupBy()

groupBy(  $callback) 

{@inheritDoc}

Parameters

$callback

indexBy()

indexBy(  $callback) 

{@inheritDoc}

Parameters

$callback

countBy()

countBy(  $callback) 

{@inheritDoc}

Parameters

$callback

sumOf()

sumOf(  $matcher = null) 

{@inheritDoc}

Parameters

$matcher

shuffle()

shuffle() 

{@inheritDoc}

sample()

sample(  $size = 10) 

{@inheritDoc}

Parameters

$size

take()

take(  $size = 1,   $from) 

{@inheritDoc}

Parameters

$size
$from

skip()

skip(  $howMany) 

{@inheritDoc}

Parameters

$howMany

match()

match(array  $conditions) 

{@inheritDoc}

Parameters

array $conditions

firstMatch()

firstMatch(array  $conditions) 

{@inheritDoc}

Parameters

array $conditions

first()

first() 

{@inheritDoc}

last()

last() 

{@inheritDoc}

takeLast()

takeLast(  $howMany) 

{@inheritDoc}

Parameters

$howMany

append()

append(  $items) 

{@inheritDoc}

Parameters

$items

appendItem()

appendItem(  $item,   $key = null) 

{@inheritDoc}

Parameters

$item
$key

prepend()

prepend(  $items) 

{@inheritDoc}

Parameters

$items

prependItem()

prependItem(  $item,   $key = null) 

{@inheritDoc}

Parameters

$item
$key

combine()

combine(  $keyPath,   $valuePath,   $groupPath = null) 

{@inheritDoc}

Parameters

$keyPath
$valuePath
$groupPath

nest()

nest(  $idPath,   $parentPath,   $nestingKey = 'children') 

{@inheritDoc}

Parameters

$idPath
$parentPath
$nestingKey

toArray()

toArray(  $preserveKeys = true) 

{@inheritDoc}

Parameters

$preserveKeys

toList()

toList() 

{@inheritDoc}

jsonSerialize()

jsonSerialize() 

{@inheritDoc}

compile()

compile(  $preserveKeys = true) 

{@inheritDoc}

Parameters

$preserveKeys

lazy()

lazy() 

{@inheritDoc}

listNested()

listNested(  $dir = 'desc',   $nestingKey = 'children') : \Cake\Collection\Iterator\TreeIterator

{@inheritDoc}

Parameters

$dir
$nestingKey

Returns

\Cake\Collection\Iterator\TreeIterator

unfold()

unfold(callable  $transformer = null) 

{@inheritDoc}

Parameters

callable $transformer

through()

through(callable  $handler) 

{@inheritDoc}

Parameters

callable $handler

zip()

zip(  $items) 

{@inheritDoc}

Parameters

$items

zipWith()

zipWith(  $items,   $callable) 

{@inheritDoc}

Parameters

$items
$callable

chunk()

chunk(  $chunkSize) 

{@inheritDoc}

Parameters

$chunkSize

chunkWithKeys()

chunkWithKeys(  $chunkSize,   $preserveKeys = true) 

{@inheritDoc}

Parameters

$chunkSize
$preserveKeys

isEmpty()

isEmpty() 

{@inheritDoc}

unwrap()

unwrap() 

{@inheritDoc}

_unwrap()

_unwrap() 

cartesianProduct()

cartesianProduct(callable|null  $operation = null, callable|null  $filter = null) : \Cake\Collection\CollectionInterface

Parameters

callable|null $operation

Operation

callable|null $filter

Filter

Throws

\LogicException

Returns

\Cake\Collection\CollectionInterface

count()

count() : integer

{@inheritDoc}

Returns

integer

countKeys()

countKeys() : integer

{@inheritDoc}

Returns

integer

__construct()

__construct(array  $sets, callable|null  $callable = null) 

Creates the iterator to merge together the values by for all the passed iterators by their corresponding index.

Parameters

array $sets

The list of array or iterators to be zipped.

callable|null $callable

The function to use for zipping the elements of each iterator.

current()

current() : mixed

Returns the value resulting out of zipping all the elements for all the iterators with the same positional index.

Returns

mixed

serialize()

serialize() : string

Returns a string representation of this object that can be used to reconstruct it

Returns

string

unserialize()

unserialize(string  $iterators) : void

Unserializes the passed string and rebuilds the ZipIterator instance

Parameters

string $iterators

The serialized iterators

optimizeUnwrap()

optimizeUnwrap() : \Traversable|array

Unwraps this iterator and returns the simplest traversable that can be used for getting the data out

Returns

\Traversable|array