Mailinglisten-Archive |
----- Original Message ----- From: "Tobias Orterer" <tobias.orterer_(at)_iat-matrix.de> To: <php_(at)_phpcenter.de> Sent: Monday, May 14, 2001 1:20 PM Subject: Re: [php] Passender Allgorithmus zum Baumkinder berechnen? > ist das nicht das was du suchst? Nein, ich habe ein array: n name id tiefe topid 1 -+ Vater1 (1) (0) (0) | 2 +-+ Kind1 (12) (1) (1) | 3 +-+ Kind2 (13) (1) (1) | | 4 | +-+ Enkel1 (54) (2) (13) ... array( 1 => array ( "name"=>"Vater1", "id"=> 1, "tiefe"=>0, "topid"=>0 ), 2 => array ( "name"=>"Kind1", "id"=>12, "tiefe"=>1, "topid"=>1 ), 3 => array ( "name"=>"Kind2", "id"=>13, "tiefe"=>1, "topid"=>1 ), ... Und suche das array: n name id tiefe topid childs 1 -+ Vater1 (1) (0) (0) (12,13,54...) | 2 +-+ Kind1 (12) (1) (1) () | 3 +-+ Kind2 (13) (1) (1) (54...) | | 4 | +-+ Enkel1 (54) (2) (13) () ... array( 1 => array ( "name"=>"Vater1", "id"=> 1, "tiefe"=>0, "topid"=>0, childs=>array(12,13,54...) ), 2 => array ( "name"=>"Kind1", "id"=>12, "tiefe"=>1, "topid"=>1, childs=>array() ), 3 => array ( "name"=>"Kind2", "id"=>13, "tiefe"=>1, "topid"=>1, childs=>array(54...) ), ... > also normal sollte man das was du haben willst daraus baun können also > aus der class.static_tree.php > bzw. mr. traffic-eye stell die doch mal als phps auf die site ;o) Der baum ist huebsch, ich suche aber nur nach dem passenden allgorithmus um aus meinem ersten array das zweite zu erzeugen. Simpelste moeglichkeit waere: - array in ein hilfsarray $h umformen das nach "id" indiziert ist. - $h per forschleife durchlaufen: - fuer jeden eintrag in einer rekursiven funktion alle darunter liegenden eintraege ermitteln und zurueck geben. - ergebnis eintragen und weiter... - $h zurueckwandeln Das ist aber imho wirklich ein extrem schlechter allgorithmus um das ergebnis zu bekommen - das sollte sich viel schneller machen lassen ohne zig mal die selben zweige des baumes in der rekursion durchlaufen zu muessen. Nur wie? Was ist ein sinnvoller ansatz? _________________________________________________________ Do You Yahoo!? Get your free _(at)_yahoo.com address at http://mail.yahoo.com
php::bar PHP Wiki - Listenarchive