If the current position is valid, returns an array with
index zero as the key and index one as the value and advances
the iterator to the next position or returns null if the current
position is invalid.
protected function doFetch() { while ((list($innerKey, $innerValue) = $this->innerValuesIterator->fetch()) === null) { if ((list($this->outerKey, $this->outerValue) = $this->outerIterator->fetch()) === null) { return null; } $this->innerValuesIterator = $this->getInnerValuesIterator($this->outerKey, $this->outerValue); $this->innerValuesIterator->rewind(); } $projectionFunction = $this->projectionFunction; return [$this->count++, $projectionFunction($this->outerValue, $innerValue, $this->outerKey, $innerKey)]; }
public function __construct(IIterator $values = null) { if ($values !== null) { $values->rewind(); while ($element = $values->fetch()) { $this->addRef($element[1]); } } }