Te dejo el siguiente codigo que utilice para el articulo sobre PHP-GTK, para crear un visor de archivos y directorios, la funcion lo que hace es carcar en un array los direcotorios y en otro los archivos pasalandole como argumento a la funcion un directorio.
Código PHP:
class Archivos {
var $dirPath;
function cargar_dir($ruta="")
{
$this->dirPath = "/";
if(gettype($ruta) != "object")
{
$this->dirPath = $ruta;
}
$directorios = array();
$archivos = array();
sort($directorios);
sort($archivos);
reset($directorios);
reset($archivos);
$handle = opendir($this->dirPath);
while ($file = readdir($handle))
{
if(is_dir($this->dirPath.$file))
{
$directorios[] = $file;
}
elseif(is_file($this->dirPath.$file))
{
$archivos[] = $file;
}
}
closedir($handle);
}
}
Es una clase tan solo tienes que hacer:
Código PHP:
$archivos = new Archivos;
$archivos->cargar_dir("/");
O si solo quieres la funcion en vez de hacer uso de la variable de clase $dirPath, crea un variable global con el mismo nombre y modifica el codigo.
Para ordenar las matrizes tan solo tieens que hacer uso de la funcion array_multisort()
Saludos