private function nestNode($ancestor, $node, array $nodeNames) { while ($name = array_shift($nodeNames)) { if (empty($nodeNames)) { $ancestor->{$name} = $node; return; } $ancestor = $ancestor->{$name}; } }