function getHierarchy($parent = 0) { $hier = navigationmodule::_getHierarchy(); if ($parent == 0) { return $hier; } $new_hier = array(); $subtree_depth = 0; foreach (array_keys($hier) as $sid) { if ($sid == $parent) { $subtree_depth = $hier[$sid]->depth; } if ($subtree_depth) { // Found our sub tree if ($hier[$sid]->depth > $subtree_depth) { $new_hier[$hier[$sid]->id] = $hier[$sid]; } else { break; } } } return $new_hier; }