un po' di tempo fa m'ero fatto questa funzioncina ricorsiva che indenta anche rudimentalmente le directory in base alla profondità 
dovrebbe andarti bene
Codice PHP:
function dir_tree($path='.')
{
//contatore statico che indica la profondità del nodo correntemente analizzato
static $deep;
if(!($dir = opendir($path))) return 0;
while($file = readdir($dir))
{
//se il file letto è una directory diversa da "." e ".."
if(is_dir("$path/$file") && ($file != '.') && ($file != '..'))
{
//stampo dei caratteri di indentazione della direcrory corrente in base alla pofondità del nodo
for($j=0;$j<$deep;$j++) echo "----";
echo "$file
"; //stampo il nome della directory
$deep++;//scendo di un livello
dir_tree("$path/$file"); //stampo l'albero della dir appena trovata
}
}
closedir($dir); //chiudo la dir
//torno ad analizzare il livello superiore
$deep--;
return 1;
}