phpbar.de logo

Mailinglisten-Archive

[php] array -> tree-array :-)

[php] array -> tree-array :-)

Sebastian Tobias Mendel genannt Mendelsohn lists at sebastianmendel.de
Mit Sep 24 17:28:15 CEST 2003


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