Mailinglisten-Archive |
Dario Nuevo wrote:
> hi leute..
>
> ich hab ein logikproblem, ich komm einfach nicht drauf wie ich das lösen
> soll..
> ich hab in einer tabelle einen tree abgebildet, wie üblich mit den 2
> feldern
> | id | parent_id |
>
> root ist wie immer parent_id=0
>
> nun will ich eine funktion schreiben, welche aus diesem normalen array
> einen multidimensionalen array erstellt, welcher den tree quasi abbildet..
> also
>
> | id | parent_id |
> 1 0
> 2 1
> 3 2
> 4 2
> 5 1
>
> sollte geben
>
> array(
> [0] =>
> array(
> [1] =>
> array(
> [2] =>
> array(
> [3] => ''
> [4] => ''
> )
> [5] => ''
> ) )
> )
>
> jeder array sollte also seine direkten "childs" seines levels drin haben..
> find ich eben noch recht komplex und ich komm nicht drauf. ich denk
> irgendwo muss auf jeden fall ein rekursiver funktionsaufruf drin sein..
> aber eben, ich komm nicht drauf..
achja, oder etwas rekursives
alle ergebnisse in ein array id => parent_id $alles
function add_values($zweig)
{
foreach ( $alles as $id => $parent_id )
{
if ( $zweig == $parent_id )
{
$_ar[$zweig] = add_values($parent_id);
}
}
return $_ar;
}
$tree = add_values(0);
... naja irgendwie so, habs jetzt nicht genau durchdacht, sind bestimmt
fehler drin, aber der grundgedanke kommt rüber oder?
--
Sebastian Mendel
www.sebastianmendel.de
www.tekkno4u.de
www.nofetish.com
php::bar PHP Wiki - Listenarchive