Foros del Web » Programando para Internet » PHP »

Ordenar contenido de una carpeta

Estas en el tema de Ordenar contenido de una carpeta en el foro de PHP en Foros del Web. Hola a todos estoy construyendo un pequeño filemanager y me gustaria saber como puedo hacer para que salgan primero los directorios y luego los archivos ...
  #1 (permalink)  
Antiguo 08/05/2007, 16:50
(Desactivado)
 
Fecha de Ingreso: febrero-2007
Mensajes: 225
Antigüedad: 17 años, 2 meses
Puntos: 5
Exclamación Ordenar contenido de una carpeta

Hola a todos estoy construyendo un pequeño filemanager y me gustaria saber como puedo hacer para que salgan primero los directorios y luego los archivos , de momento me sale todo mezclado gracias a todos , espero sus respuestas
  #2 (permalink)  
Antiguo 08/05/2007, 20:52
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 20 años, 4 meses
Puntos: 17
Re: Ordenar contenido de una carpeta

lo que puedes hacer es cuando lees los contenido del directorio, los archivos los vas guardando en una matriz y agregandole un dato importante como la fecha y si es directorio o no.

Luego puedes ordenar esa matriz segun sean directorio y por fecha (un bubblesort te sirve) o aplicar la funcion que ordena array segun una funcion de comparacion.

Este tips te puede servir para lo segundo
Ordenar Archivos en Matriz


Saludos
  #3 (permalink)  
Antiguo 09/05/2007, 04:56
(Desactivado)
 
Fecha de Ingreso: febrero-2007
Mensajes: 225
Antigüedad: 17 años, 2 meses
Puntos: 5
Re: Ordenar contenido de una carpeta

Cita:

while ($elemento = $dir->read())
{
// Evitamos el . y ...
if ( ($elemento != '.') and ($elemento != '..'))
{
// Guardamos en la Matriz $archivos el Nombre y Fecha de Creacion
$archivos[$i]['nombre']=$elemento;
$archivos[$i]['fecha']=filectime($ruta.$elemento);
$i++;
}
}

Y como puedo ordenarlos dentro del bucle while y no fuera a ver si me dices , gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:18.