Felix Riesterer: Array-Struktur vereinfachen

Beitrag lesen

Lieber Tobias,

ich verwende exakt für Dein Prpblem eine andere Array-Struktur, die sich wunderbar leicht sortieren lässt.

Mein Verzeichnisarray sieht so aus:

Array(  
 [ordner1] => Array(  
               [unterordner1] => Array(  
                                  [Datei1.dat] =>  
                                  [Datei2.dat] =>  
                                 )  
               [Datei3.dat] =>  
               [Datei4.dat] =>  
              )  
 [ordner_leer] => Array ()  
 [ordner3] => Array(  
               [Datei5.dat] =>  
              )  
 [Datei6.dat] =>  
)

Das Prinzip lässt sich in etwa so zusammenfassen: Datei-/Ordnername steht im Key eines Array-Elements, bei Ordnern steht der Inhalt als neues Array im Value, bei Dateien bleibt der Value leer. Die Unterscheidung zwischen Datei und Verzeichnis ist anhand des Values möglich: Ist Value leer, so ist es eine Datei, ist Value ein Array, so ist es ein Ordner; ist es weder noch, so liegt ein Fehler vor.

Eine Sortierfunktion ist auch schnell gemacht: Sie prüft in einem Array (Verzeichnis) die Values zuerst auf is_array(), denn diese wandern nach oben, dann erst auf strnatcmp().

Liebe Grüße aus Ellwangen,

Felix Riesterer.