Estoy tratando de hacer que la función scandir();
vaya más allá de sus límites escritos, necesito más que la ordenación alfa que admite actualmente. Necesito ordenar los resultados de scandir();
para ser ordenados por fecha de modificación.scandir() para ordenar por fecha de modificación
He intentado algunas soluciones que encontré aquí y algunas otras soluciones de diferentes sitios web, pero ninguno funcionó para mí, por lo que creo que es razonable para mí publicar aquí.
Lo que he probado hasta ahora es la siguiente:
function scan_dir($dir)
{
$files_array = scandir($dir);
$img_array = array();
$img_dsort = array();
$final_array = array();
foreach($files_array as $file)
{
if(($file != ".") && ($file != "..") && ($file != ".svn") && ($file != ".htaccess"))
{
$img_array[] = $file;
$img_dsort[] = filemtime($dir . '/' . $file);
}
}
$merge_arrays = array_combine($img_dsort, $img_array);
krsort($merge_arrays);
foreach($merge_arrays as $key => $value)
{
$final_array[] = $value;
}
return (is_array($final_array)) ? $final_array : false;
}
embargo, esto no parece funcionar para mí, devuelve resultados sólo 3, pero debe devolver 16 resultados, porque hay 16 imágenes en la carpeta.
@dugi probar este método. Los nombres de archivo en un solo directorio deben ser únicos. Por lo tanto, pueden usarse como la clave. La matriz se ordena por valores (el tiempo de modificación) y las claves (los nombres de los archivos) se devuelven en el orden correcto. –
Lo intenté y funcionó a las mil maravillas. Gracias Ryoin. – Aborted
¡Trabaja como un encanto! – BSQ