PHP: Rekursives bekommen Kinder von Eltern

Ich habe eine Funktion, die bekommt das die ids aller untergeordneten Elemente eines übergeordneten Elements von meiner DB. Also, wenn ich nach oben schaute, id 7, es könnte ein array zurückgeben, mit 5, 6 und 10. Was ich dann tun wollen, ist rekursiv finden die Kinder der zurückgegebenen ids, und so weiter, bis der Letzte Tiefe der Kinder.

Habe ich versucht eine Funktion schreiben, die dies tun, aber ich bin immer verwirrt, über Rekursion.

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()

Nachdem die Funktion ausgeführt wird, würde ich gerne wieder eine ein-dimensionale array aller child-ids, die gefunden wurden.

InformationsquelleAutor Nic Hubbard | 2010-02-28

Schreibe einen Kommentar