id = (int)$id; $this->name = (string)$name; $this->parent = (int)$parent; if($parent !== -1){ $a[$parent]->addChild($a[(int)$id]); } } public function addChild(&$child){ $this->childs[] = &$child; } public function getName(){ return $this->name; } public function getChilds(){ return $this->childs; } } $a[0] = ''; $a[0] = new Channel(&$a, 0, 'main', -1); $a[1] = ''; $a[1] = new Channel(&$a, 1, 'chan 1', 0); $a[2] = ''; $a[2] = new Channel(&$a, 2, 'chan 2', 0); $a[3] = ''; $a[3] = new Channel(&$a, 3, 'sub chan 1', 1); $a[4] = ''; $a[4] = new Channel(&$a, 4, 'sub chan 2', 2); $a[5] = ''; $a[5] = new Channel(&$a, 5, 'sub sub chan 1', 3); function drawTree(&$a, $p){ $puce = '-'.$p; if(gettype($a) == 'object'){ printf("%s %s
", $puce, $a->getName()); $tabs = $a->getChilds(); foreach($tabs AS $i => $channel){ drawTree($channel, $puce); } } } drawTree($a[0], '>'); ?>