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