I ceated a function to convert a list of parent child to an object of class “city” :
public static function createCity(array $config)
{
$city= new City();
$id=key($config);
$label= $config[$id]['label'];
$city->setId($id);
$city->setLabel($label);
$children = $config[$id]['childrens'];
if(!empty($children)){
foreach($children as $key_child => $child) {
$children = array($key_child => $child);
$city->addChild(self::createCity($children));
}
}
return $city;
}
Now I would to creat a function to do the opposite => convert an object of type Class City to an array,so I do like that :
public function getCityArray(City$rootCity)
{
$result = array();
$result['id'] = $rootCity->getId();
$result['label']= $rootCity->getLabel();
$children = $rootCity->getChildren();
if ( !empty($children)) {
foreach ($children as $key_child => $child) {
$result['childrens'] = array($key_child => $child );
$result[] = $this->getCityArray($child);
}
}
return $result;
}
But it doesn’t work because when I do var_dump(‘$result’) so I have a list with no end and the loop does not stop?
Try this. Since I don’t know have the full code, not sure if it will work. The class variable
$resultwill contain the results.