non hai il libro ma hai internet!!

Innanzitutto ti consiglio di cercare le funzioni che ti ho passato su php.net

comunque al volo perchè non ho tempo di scriverti il codice e controllarlo.

prima del while dichiari un array di cartelle vuoto:

$cartelle = array();

dentro il while anzichè l'echo metti

$cartelle[filemtime($file)] = $file; // o se vuoi evitare tutto il percorso in visualizzazione basename($file);

finito il while,

ksort($cartelle);

infine cicli l'array e lo stampi:

foreach($cartelle as $data_creazione => $nome_cartella) {
echo date('d-m-Y', $data_creazione)." - ".$nome_cartella;
}

ciao