después de usar archivos $ = nuevo DirectoryIterator () en PHP, ¿cómo ordenar los elementos?

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

  •  21-08-2019
  •  | 
  •  

Pregunta

Podemos obtener los archivos en un directorio en PHP

$files = new DirectoryIterator() 

Después de eso hay una manera fácil de ordenar los elementos en un orden determinado para la visualización de ellos? gracias.

¿Fue útil?

Solución

No se ve que hay una manera de ordenar los datos dentro del iterador.

Se puede colocar los datos de visualización en una matriz intermedia, con una tecla del valor que desea ordenar, y llamar a ksort () en la matriz. Esto se llevará a dos pases sobre sin embargo 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";
}

editar

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 más.

Otros consejos

$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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top