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.