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