$ Files = new DirectoryIterator () in PHP nach der Verwendung, wie sortieren Sie die Einzelteile?

StackOverflow https://stackoverflow.com/questions/1076881

  •  21-08-2019
  •  | 
  •  

Frage

Wir können die Dateien in einem Verzeichnis in PHP von

erhalten
$files = new DirectoryIterator() 

danach gibt es eine einfache Möglichkeit, die Elemente in einer bestimmten Reihenfolge sortieren sie für die Anzeige? Dank.

War es hilfreich?

Lösung

Es sieht nicht wie es eine Möglichkeit, die Daten innerhalb des Iterators zu sortieren.

Sie können die Anzeigedaten in einem Zwischen Array platzieren, mit einem Schlüssel des Wertes Sie möchten sortieren und rufen ksort () auf dem Array. Dies wird jedoch zwei Durchgänge über die Daten übernehmen.

$path = ".";
$files = new DirectoryIterator($path);
$files_array = array();

while($files->valid()) {
        // sort key, ie. modified timestamp
        $key = $files->getMTime();
        $data = $files->getFilename();
        $files_array[$key] = $data;
        $files->next();
}
ksort($files_array);
foreach($files_array as $key => $file){
    print $key . " => " . $file . "\n";
}

edit:

Wenn Sie alle Informationen platzieren, die Sie für die Dateien in den Array-Werte ausgeben möchten, können Sie einfach implodieren () das Array danach, statt wieder einmal durch die Daten Looping.

Andere Tipps

$files = new DirectoryIterator($path);
$i = 0;
$paths = array();
while($files->valid()) {
    $paths[$i++] = $files->getFileName();
    $files->next();
}
sort($paths)

Kann das sein, was Sie suchen, können Sie immer gelten natürlich die Sortierfunktion die Pfade je nach Vorliebe danach zu sortieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top