У меня есть функция, которая получает идентификаторы всех потомков родителя из моей БД. Итак, если я посмотрю на id 7, он может вернуть массив с 5, 6 и 10. То, что я затем хочу сделать, это рекурсивно найти дочерние элементы этих возвращенных идентификаторов и так далее, до конечной глубины дочерних элементов.
Я пытался написать функцию для этого, но меня смущает рекурсия.
function getChildren($parent_id) {
$tree = Array();
$tree_string;
if (!empty($parent_id)) {
// getOneLevel() returns a one-dimentional array of child ids
$tree = $this->getOneLevel($parent_id);
foreach ($tree as $key => $val) {
$ids = $this->getChildren($val);
array_push($tree, $ids);
//$tree[] = $this->getChildren($val);
$tree_string .= implode(',', $tree);
}
return $tree_string;
} else {
return $tree;
}
}//end getChildren()
После запуска функции мне бы хотелось, чтобы она возвращала одномерный массив всех найденных дочерних идентификаторов.