protected function walk(array $array, INode $root) { foreach ($array as $k => $v) { $root->addNode($node = new Node($k)); if (!is_array($v)) { $node->setValue($v); continue; } $this->walk($v, $node); } }