Vinzenz Mai: Dateien nach Dateityp sortieren

Beitrag lesen

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