ZipIterator
extends MultipleIterator
in package
implements
CollectionInterface, Serializable
uses
CollectionTrait
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]
Table of Contents
Interfaces
- CollectionInterface
- Describes the methods a Collection should implement. A collection is an immutable list of elements exposing a number of traversing and extracting method for generating other collections.
- Serializable
Properties
- $_callback : callable|null
- The function to use for zipping items together
- $_iterators : array<string|int, mixed>
- Contains the original iterator objects that were attached
Methods
- __construct() : mixed
- Creates the iterator to merge together the values by for all the passed iterators by their corresponding index.
- __serialize() : array<string|int, mixed>
- Magic method used for serializing the iterator instance.
- __unserialize() : void
- Magic method used to rebuild the iterator instance.
- append() : CollectionInterface
- appendItem() : CollectionInterface
- avg() : mixed
- buffered() : CollectionInterface
- cartesianProduct() : CollectionInterface
- {@inheritDoc}
- chunk() : CollectionInterface
- chunkWithKeys() : CollectionInterface
- combine() : CollectionInterface
- compile() : CollectionInterface
- contains() : bool
- count() : int
- countBy() : CollectionInterface
- countKeys() : int
- current() : array<string|int, mixed>
- Returns the value resulting out of zipping all the elements for all the iterators with the same positional index.
- each() : mixed
- every() : bool
- extract() : CollectionInterface
- filter() : CollectionInterface
- first() : mixed
- firstMatch() : mixed
- groupBy() : CollectionInterface
- indexBy() : CollectionInterface
- insert() : CollectionInterface
- isEmpty() : bool
- jsonSerialize() : array<string|int, mixed>
- last() : mixed
- lazy() : CollectionInterface
- listNested() : CollectionInterface
- map() : CollectionInterface
- match() : CollectionInterface
- max() : mixed
- median() : mixed
- min() : mixed
- nest() : CollectionInterface
- prepend() : CollectionInterface
- prependItem() : CollectionInterface
- reduce() : mixed
- reject() : CollectionInterface
- sample() : CollectionInterface
- serialize() : string
- Returns a string representation of this object that can be used to reconstruct it
- shuffle() : CollectionInterface
- skip() : CollectionInterface
- some() : bool
- sortBy() : CollectionInterface
- stopWhen() : CollectionInterface
- sumOf() : mixed
- take() : CollectionInterface
- takeLast() : CollectionInterface
- through() : CollectionInterface
- toArray() : array<string|int, mixed>
- toList() : array<string|int, mixed>
- transpose() : CollectionInterface
- {@inheritDoc}
- unfold() : CollectionInterface
- unserialize() : void
- Unserializes the passed string and rebuilds the ZipIterator instance
- unwrap() : Traversable
- zip() : CollectionInterface
- zipWith() : CollectionInterface
- newCollection() : CollectionInterface
- Returns a new collection.
- optimizeUnwrap() : iterable<string|int, mixed>
- Unwraps this iterator and returns the simplest traversable that can be used for getting the data out
Properties
$_callback
The function to use for zipping items together
protected
callable|null
$_callback
$_iterators
Contains the original iterator objects that were attached
protected
array<string|int, mixed>
$_iterators
= []
Methods
__construct()
Creates the iterator to merge together the values by for all the passed iterators by their corresponding index.
public
__construct(array<string|int, mixed> $sets[, callable|null $callable = null ]) : mixed
Parameters
- $sets : array<string|int, mixed>
-
The list of array or iterators to be zipped.
- $callable : callable|null = null
-
The function to use for zipping the elements of each iterator.
__serialize()
Magic method used for serializing the iterator instance.
public
__serialize() : array<string|int, mixed>
Return values
array<string|int, mixed>__unserialize()
Magic method used to rebuild the iterator instance.
public
__unserialize(array<string|int, mixed> $data) : void
Parameters
- $data : array<string|int, mixed>
-
Data array.
append()
public
append(mixed $items) : CollectionInterface
Parameters
- $items : mixed
Tags
Return values
CollectionInterfaceappendItem()
public
appendItem(mixed $item[, mixed $key = null ]) : CollectionInterface
Parameters
- $item : mixed
- $key : mixed = null
Tags
Return values
CollectionInterfaceavg()
public
avg([mixed $path = null ]) : mixed
Parameters
- $path : mixed = null
Tags
buffered()
public
buffered() : CollectionInterface
Tags
Return values
CollectionInterfacecartesianProduct()
{@inheritDoc}
public
cartesianProduct([callable|null $operation = null ][, callable|null $filter = null ]) : CollectionInterface
Parameters
- $operation : callable|null = null
-
A callable that allows you to customize the product result.
- $filter : callable|null = null
-
A filtering callback that must return true for a result to be part of the final results.
Tags
Return values
CollectionInterfacechunk()
public
chunk(int $chunkSize) : CollectionInterface
Parameters
- $chunkSize : int
Tags
Return values
CollectionInterfacechunkWithKeys()
public
chunkWithKeys(int $chunkSize[, bool $keepKeys = true ]) : CollectionInterface
Parameters
- $chunkSize : int
- $keepKeys : bool = true
Tags
Return values
CollectionInterfacecombine()
public
combine(mixed $keyPath, mixed $valuePath[, mixed $groupPath = null ]) : CollectionInterface
Parameters
- $keyPath : mixed
- $valuePath : mixed
- $groupPath : mixed = null
Tags
Return values
CollectionInterfacecompile()
public
compile([bool $keepKeys = true ]) : CollectionInterface
Parameters
- $keepKeys : bool = true
Tags
Return values
CollectionInterfacecontains()
public
contains(mixed $value) : bool
Parameters
- $value : mixed
Tags
Return values
boolcount()
public
count() : int
Tags
Return values
intcountBy()
public
countBy(mixed $path) : CollectionInterface
Parameters
- $path : mixed
Tags
Return values
CollectionInterfacecountKeys()
public
countKeys() : int
Tags
Return values
intcurrent()
Returns the value resulting out of zipping all the elements for all the iterators with the same positional index.
public
current() : array<string|int, mixed>
Attributes
- #[ReturnTypeWillChange]
Return values
array<string|int, mixed>each()
public
each(callable $callback) : mixed
Parameters
- $callback : callable
Tags
every()
public
every(callable $callback) : bool
Parameters
- $callback : callable
Tags
Return values
boolextract()
public
extract(mixed $path) : CollectionInterface
Parameters
- $path : mixed
Tags
Return values
CollectionInterfacefilter()
public
filter([callable|null $callback = null ]) : CollectionInterface
Parameters
- $callback : callable|null = null
Tags
Return values
CollectionInterfacefirst()
public
first() : mixed
Tags
firstMatch()
public
firstMatch(array<string|int, mixed> $conditions) : mixed
Parameters
- $conditions : array<string|int, mixed>
Tags
groupBy()
public
groupBy(mixed $path) : CollectionInterface
Parameters
- $path : mixed
Tags
Return values
CollectionInterfaceindexBy()
public
indexBy(mixed $path) : CollectionInterface
Parameters
- $path : mixed
Tags
Return values
CollectionInterfaceinsert()
public
insert(string $path, mixed $values) : CollectionInterface
Parameters
- $path : string
- $values : mixed
Tags
Return values
CollectionInterfaceisEmpty()
public
isEmpty() : bool
Tags
Return values
booljsonSerialize()
public
jsonSerialize() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed>last()
public
last() : mixed
Tags
lazy()
public
lazy() : CollectionInterface
Tags
Return values
CollectionInterfacelistNested()
public
listNested([mixed $order = 'desc' ][, mixed $nestingKey = 'children' ]) : CollectionInterface
Parameters
- $order : mixed = 'desc'
- $nestingKey : mixed = 'children'
Tags
Return values
CollectionInterfacemap()
public
map(callable $callback) : CollectionInterface
Parameters
- $callback : callable
Tags
Return values
CollectionInterfacematch()
public
match(array<string|int, mixed> $conditions) : CollectionInterface
Parameters
- $conditions : array<string|int, mixed>
Tags
Return values
CollectionInterfacemax()
public
max(mixed $path[, int $sort = SORT_NUMERIC ]) : mixed
Parameters
- $path : mixed
- $sort : int = SORT_NUMERIC
Tags
median()
public
median([mixed $path = null ]) : mixed
Parameters
- $path : mixed = null
Tags
min()
public
min(mixed $path[, int $sort = SORT_NUMERIC ]) : mixed
Parameters
- $path : mixed
- $sort : int = SORT_NUMERIC
Tags
nest()
public
nest(mixed $idPath, mixed $parentPath[, string $nestingKey = 'children' ]) : CollectionInterface
Parameters
- $idPath : mixed
- $parentPath : mixed
- $nestingKey : string = 'children'
Tags
Return values
CollectionInterfaceprepend()
public
prepend(mixed $items) : CollectionInterface
Parameters
- $items : mixed
Tags
Return values
CollectionInterfaceprependItem()
public
prependItem(mixed $item[, mixed $key = null ]) : CollectionInterface
Parameters
- $item : mixed
- $key : mixed = null
Tags
Return values
CollectionInterfacereduce()
public
reduce(callable $callback[, mixed $initial = null ]) : mixed
Parameters
- $callback : callable
- $initial : mixed = null
Tags
reject()
public
reject(callable $callback) : CollectionInterface
Parameters
- $callback : callable
Tags
Return values
CollectionInterfacesample()
public
sample([int $length = 10 ]) : CollectionInterface
Parameters
- $length : int = 10
Tags
Return values
CollectionInterfaceserialize()
Returns a string representation of this object that can be used to reconstruct it
public
serialize() : string
Return values
stringshuffle()
public
shuffle() : CollectionInterface
Tags
Return values
CollectionInterfaceskip()
public
skip(int $length) : CollectionInterface
Parameters
- $length : int
Tags
Return values
CollectionInterfacesome()
public
some(callable $callback) : bool
Parameters
- $callback : callable
Tags
Return values
boolsortBy()
public
sortBy(mixed $path[, int $order = SORT_DESC ][, int $sort = SORT_NUMERIC ]) : CollectionInterface
Parameters
- $path : mixed
- $order : int = SORT_DESC
- $sort : int = SORT_NUMERIC
Tags
Return values
CollectionInterfacestopWhen()
public
stopWhen(mixed $condition) : CollectionInterface
Parameters
- $condition : mixed
Tags
Return values
CollectionInterfacesumOf()
public
sumOf([mixed $path = null ]) : mixed
Parameters
- $path : mixed = null
Tags
take()
public
take([int $length = 1 ][, int $offset = 0 ]) : CollectionInterface
Parameters
- $length : int = 1
- $offset : int = 0
Tags
Return values
CollectionInterfacetakeLast()
public
takeLast(int $length) : CollectionInterface
Parameters
- $length : int
Tags
Return values
CollectionInterfacethrough()
public
through(callable $callback) : CollectionInterface
Parameters
- $callback : callable
Tags
Return values
CollectionInterfacetoArray()
public
toArray([bool $keepKeys = true ]) : array<string|int, mixed>
Parameters
- $keepKeys : bool = true
Tags
Return values
array<string|int, mixed>toList()
public
toList() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed>transpose()
{@inheritDoc}
public
transpose() : CollectionInterface
Tags
Return values
CollectionInterfaceunfold()
public
unfold([callable|null $callback = null ]) : CollectionInterface
Parameters
- $callback : callable|null = null
Tags
Return values
CollectionInterfaceunserialize()
Unserializes the passed string and rebuilds the ZipIterator instance
public
unserialize(string $iterators) : void
Parameters
- $iterators : string
-
The serialized iterators
unwrap()
public
unwrap() : Traversable
Tags
Return values
Traversablezip()
public
zip(iterable<string|int, mixed> $items) : CollectionInterface
Parameters
- $items : iterable<string|int, mixed>
Tags
Return values
CollectionInterfacezipWith()
public
zipWith(iterable<string|int, mixed> $items, mixed $callback) : CollectionInterface
Parameters
- $items : iterable<string|int, mixed>
- $callback : mixed
Tags
Return values
CollectionInterfacenewCollection()
Returns a new collection.
protected
newCollection(mixed ...$args) : CollectionInterface
Allows classes which use this trait to determine their own type of returned collection interface
Parameters
- $args : mixed
-
Constructor arguments.
Return values
CollectionInterfaceoptimizeUnwrap()
Unwraps this iterator and returns the simplest traversable that can be used for getting the data out
protected
optimizeUnwrap() : iterable<string|int, mixed>