Art directory-listing mit RecursiveDirectoryIterator
Ich bin mit RecursiveDirectoryIterator
und RecursiveIteratorIterator
zu bauen, eine Datei mit der Auflistung der Baum mit code wie unten. Ich muss die Liste sortiert werden - entweder Verzeichnisse, dann die Dateien alphabetisch, oder einfach nur alphabetisch.
Kann mir jemand sagen, wie das Sortieren der Datei-Liste?
$dir_iterator = new RecursiveDirectoryIterator($groupDirectory);
$iterator = new RecursiveIteratorIterator($dir_iterator, RecursiveIteratorIterator::SELF_FIRST);
foreach ($iterator as $file) {
//do stuff with $file
}
InformationsquelleAutor der Frage Scott Saunders | 2010-05-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist nicht möglich, mit dem Iterator selbst. Ich habe gesehen, eine Erweiterung der
Iterator
Klasse irgendwo auf, DAMIT hast Sortierung aber denken Sie daran hazily zu haben, hatten Probleme mit ihm.Vielleicht die Antworten auf diese Frage helfen, obwohl Sie Punkt Weg von der Iterator?
Update: Hier ist ein dupe zu deiner Frage mit einigen Antworten - zwar nicht viele, aber!
InformationsquelleAutor der Antwort Pekka 웃
Gibt es mehrere Optionen, die Sie verwenden können, zu Sortieren, einen iterator in eine oder andere Weise. Die beste option wäre, hängt stark auf, wie genau Sie wollen, zu manipulieren den iterator Inhalt, was, die Sie wollen, um aus dem iterator und in der Tat, wie viel oder wenig von dem iterator, die Sie wirklich wollen/brauchen.
Ansätze variieren; Nutzung von Klassen wie
SplHeap
(oderMin
Max
Sorten),SplPriorityQueue
(vielleicht für Dinge wie Datei-Größe) oder einfach nur wickeln Ihre iterator-in so etwas wieArrayObject
Sortieren kann Ihren eigenen Inhalt.Verwende ich ein
SplHeap
als ein Beispiel. Da Sie wollen, organisieren Sie den gesamten Inhalt derRecursiveDirectoryIterator
alphabetisch dann so etwas wie die folgenden verwendet werden könnten:Die Sortierung ist alphabetisch, mischen von Dateien und Ordnern:
InformationsquelleAutor der Antwort salathe
Sönke Ruempler hat eine tolle Lösung:
Quelle: http://www.ruempler.eu/2008/08/09/php-sortingiterator
InformationsquelleAutor der Antwort Martin