Tach!
Die mit voranstehenden Pfeilen markierten Einträge sind "fälschlicherweise" doppelt angelegt.
Was habe ich falsch gemacht?
Offensichtlich ist deine Programmlogik nicht wie sie sein sollte. Debuggen heißt die unbeliebte Methode, um solchen Fehlern auf die Spur zu kommen. An den Stellen, an denen du dein Ergebnis-Array erweiterst, könntest du eine Ausgabe einfügen, die dir zeigt, wann dein Code an den jeweiligen Stellen vorbeikommt. Am besten auch noch am Begin und Ende der Funktion. Zu den Ausgaben könntest du auch noch die aktuellen Werte einfügen, also den Dateinamen und im Falle der Funktionsaufrufkontrolle den Pfad.
dedlfix.