Hallo,
Ganz herzlichen Dank für deine ausführliche Erklärung. Super! :-)
(Allerdings würde mich schon auch noch interessieren, wie die Ausgabe mit dem "Gruppenwechsel" zu realisieren ist. Dazu habe ich leider nicht viel gefunden.)
Das Prinzip hat doch dedlfix beschrieben, sein Satz hilft meiner Meinung nach mehr als der Wikipedia-Artikel, den Tom verlinkt hat.
dedlfix:
"Man merkt sich immer den vorhergehenden Gruppierwert (in deinem
Fall die Endung) und wenn der wechselt, beendest du die bisherige
und beginnst eine neue Gruppe."
Was Du aus dem Wikipedia-Artikel mitnehmen kannst, ist, dass der erste Datensatz getrennt betrachtet werden sollte und nach Durchlaufen der Schleife(n) etwas Nacharbeit fällig werden kann:
Wie kannst Du somit Deine neu sortierte Liste ausgeben?
Deine Liste liegt wie folgt vor:
$liste = array(
'textdokument.doc',
'bild.jpg',
'noch_ein_bild.jpg',
'mehr_musik.mp3',
'musik.mp3',
'text.txt'
);
Algorithmus:
Lies den ersten Dateinamen aus (und entferne ihn aus dem Array)
Ermittle die Gruppe dieses Dateinamens (die Erweiterung ) und merke diese
Schreibe die Überschrift der ersten Gruppe
Beginne die Liste der Dateinamen der ersten Gruppe
Schreibe das erste Listenelement
Für jeden Dateinamen im Restarray
Ermittle die Gruppe des aktuellen Dateinamens
Wenn dieser sich von der gemerkten Gruppe unterscheidet
Merke die neue Gruppe
Beende die noch offene Liste
Schreibe die Überschrift der neuen Gruppe
Beginne die Liste der neuen Gruppe
Ende Wenn
Schreibe das Listenelement mit dem aktuellen Dateinamen
Ende Für
Aufräumarbeiten: Beende die letzte Liste
Im Gegensatz zum Wikipediaartikel sparen wir uns durch unser Wenn-Dann-Konstrukt die innere Schleife über die Elemente der Gruppe :-)
Verstehst Du den Algorithmus?
Kannst Du ihn umsetzen?
Wenn Du eine der Fragen mit Nein beantwortest, sag' bitte, woran Du hängen geblieben bist.
Freundliche Grüße
Vinzenz