references = $references instanceof \Traversable ? iterator_to_array($references) : $references; } /** * Returns an array of array with actual index as leaf value. * * @return array> */ public function groupByDataboxIdAndCollectionId() { $groups = []; foreach ($this->references as $index => $reference) { $databoxId = $reference->getDataboxId(); $group = isset($groups[$databoxId]) ? $groups[$databoxId] : []; $group[$reference->getCollectionId()] = $index; $groups[$databoxId] = $group; } return $groups; } /** * @return \ArrayIterator|CollectionReference[] */ public function getIterator() { return new \ArrayIterator($this->references); } }