Podemos obtener los archivos en un directorio en PHP por
$files = new DirectoryIterator()
después de eso es que hay una manera fácil de ordenar los elementos en un orden determinado para la visualización de ellos? Gracias.
Podemos obtener los archivos en un directorio en PHP por
$files = new DirectoryIterator()
después de eso es que hay una manera fácil de ordenar los elementos en un orden determinado para la visualización de ellos? Gracias.
No parece que haya una forma de ordenar los datos dentro del iterador.
Puede colocar los datos de visualización en una matriz intermedia, con una clave del valor que desea ordenar, y llamar a ksort() en la matriz. Sin embargo, esto tomará dos pasadas sobre los datos.
$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";
}
edición:
si se coloca toda la información que desea salida para los archivos en los valores de la matriz, sólo tiene que implosionar() la matriz después, en lugar de bucle a través de los datos una vez de nuevo.
$files = new DirectoryIterator($path);
$i = 0;
$paths = array();
while($files->valid()) {
$paths[$i++] = $files->getFileName();
$files->next();
}
sort($paths)
puede ser lo que está buscando, siempre, por supuesto, se puede aplicar la función de clasificación para ordenar los caminos dependiendo de su preferencia después de eso.
@ 動靜 能量 - ¿Es usted chino? –
[salathe/spl-examples - Sorting Iterators] (https://github.com/salathe/spl-examples/wiki/Sorting-Iterators) – hakre