/** * Build a Collection (array) of Items from the given data. * * @param $data * * @return Collection */ private function buildCollection($array) { $collection = new Collection(); foreach ($array as $key => $value) { $item = new Item(); if (is_array($value)) { $item->setValue($this->buildCollection($value)); } elseif (is_object($value)) { $item->setValue($this->buildStructure($value)); } else { $item->setValue($value); $item->setType(gettype($value)); if ($item->getType() === 'string') { $item->setLength(strlen($value)); } } $item->setKey($key); $collection->addItem($item); } return $collection; }