Hello,
Wenn man damit nach der Dateiendung sortiert, sind die Dateinamen ja innerhalb der jeweiligen Endung nicht mehr alphabetisch sortiert. Hast du dafür noch einen Tipp?
Das höchstwertigste Sortierglied muss vorne stehen, also links, wenn man, wie üblich, die Wertigkeit von links nach rechts auswertet.
usort() benötigst Du also nicht, wenn Du dem erhaltenen Array ein zusätzliches Element hinzufügst.
dateiname sortierbegriff
picture.mpg mpg.picture
text.txt txt.text
oder Du machst es "vernünftig" und atomarisierst die Anteile. Dann benötigst Du aber später wieder Funktionen, wie usort(), u, die erhaltene Struktur zu sortieren.
Das würde aber auf jeden Fall bedeuten, dass Du gleich beim Scannen des Directorys beide Elemente erzeugst.
while <dateiname gefunden>
dateiname ins Array einfügen
dateiname aufspalten
Extensionanteil + Namensanteil ins Array einfügen
endwhile
Array über die Elemente <Extensionanteil + Namensanteil> sortieren
Array-Elemente <dateiname> nach der Sortierung in <Extensionanteil + Namensanteil> ausgeben.
Und ja, sowas geht am besten mit einem "Spaltenarray", also einer Struktur, in der die einzelnen Spalten über ihren Index korrespondieren.
Such mal im Forum danach. Da gibt es schon genügend "Anregung" dazu :-)
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg