Tobias Pelster: Verzeichnisarray sortieren

Beitrag lesen

Hi wahsaga!

Ja stimmt. Natürlich muß ich das Teil rekursiv durchlaufen. Aber selbst

  
array_multisort($array, SORT_ASC);  

berücksichtigt anscheinend dieses "Array". Es kommt die Ausgabe

  
Array  
(  
    [0] => /Ordnerggg  
    [1] => /Testordner  
    [2] => /zzzzz  
    [3] => Array  
        (  
            [0] => /Ordnerggg/lala  
            [1] => Array  
                (  
                    [0] => /Ordnerggg/lala/aaa  
                    [1] => /Ordnerggg/lala/lala2  
                )  
  
        )  
  
    [4] => Array  
        (  
            [0] => /zzzzz/dsfdsfgdsfg  
            [1] => /zzzzz/asdasd  
        )  
  
)  

Mein anderer Ansatz war, alle Werte in ein nicht-rekursives Array zu packen, zu sortieren

  
Array  
(  
    [0] => /Ordnerggg  
    [1] => /Ordnerggg/lala  
    [2] => /Ordnerggg/lala/aaa  
    [3] => /Ordnerggg/lala/lala2  
    [4] => /Testordner  
    [5] => /zzzzz  
    [6] => /zzzzz/asdasd  
    [7] => /zzzzz/dsfdsfgdsfg  
)  

und es dann mit foreach(array as element) --> while(strtok($element, "/") ) ... wieder zu zerlegen. Nur dann denke ich ist es schwierig, mit HTML-Listen zu arbeiten, denn woher soll das einzelne Element wissen, das es nicht noch ein zweites in dieser Ebene gibt und das <ul> auf/ oder zumachen soll... :-/

Mein Ansatz für die Zerlegung

  
 $schubidu = "jetzt gehts los <br />";  
 foreach ( $tree as $element ) {  
  $schubidu .= "neues Element: ";  
  $tok = strtok($element, "/");  
  while ($tok !== false) {  
   $schubidu .= "Token=$tok, ";  
   $tok = strtok("/");  
  }  
  $schubidu .= "<br />";  
 }  
 $schubidu .= "Nu is aber schluß<br />";  

Was ist denn besser geeignet? in einer Array-ebene bleiben oder es rekursiv anpacken?
Tobi