/** * Return all descendant nodes * @param TreeNode $node * @return TreeNode[] */ private function findAllDescendants(TreeNode $node) { $descendants = []; foreach ($node->findNodes() as $subNode) { $descendants[$subNode->getKey()] = $subNode; $descendants += $node->findAllDescendants($subNode); } return $descendants; }