Also, zuerst packst du alle Daten in ein Array. So, nun kannst du dieses sortieren (PHP hat ja genug Funktionen dazu), und die Ausgabe ist alphabetisch.
Willst du nun Ordner und Dateien seperat anordnen, brauchst du mehr Informationen als nur den Namen. Was sich anbieten würde, wäre folgende Struktur: Ein Array, dass assoziative Arrays mit den Bezeichnern
name und
directory enthält.
Dein Code müsste also etwa so aussehen:
Code:
[...]
$filelist[]['name'] = realpath($currentfile);
$filelist[]['directory'] = is_dir($currentfile);
[...]
Wobei
$filelist das Array ist.
Nun musst du zum Sortieren folgendes tun: Entweder einen eigenen Sortieralgo schreiben oder
usort benutzen, dort wird zum Vergleichen der Elemente eine eigene Funktion benutzt. Hier gilt: Buchstabe mit kleinerem
ASCII-Wert ist kleiner als Buchstabe mit größerem
ASCII-Wert, abr Verzeichnis ist immer kleiner als Datei.
Also so (nicht getestet):
Code:
function cmp_values($a, $b)
{
if ($a['name'] == $b['name')
return 0;
if ($a['directory'])
if ($b['directory'])
return ($a['name'] > $b['name']) ? -1 : 1;
else
return -1; //a ist "größer"
else
return ($a['name'] > $b['name']) ? -1 : 1;
}
Ohne Gewähr, probier es mal aus.