Ciao attraverso una funzione ricorsiva leggo tutti nomi delle cartelle e sottocartelle che si trovano in un determinato percorso, e vorrei mettere questi nomi dentro ad un array multidimensionale in modo tale da ottenere una cosa del genere

codice:
Array
(
    [AQUATHLON_web] => Array
        (
            [corsa_web] => corsa_web
            [nuoto_web] => nuoto_web
            [premiazioni_web] => Array
            (
                [singola] => singola
            )
        )

    [nuoto] => nuoto
)
Ho tutto il codice che legge all'interno di una cartella e che inserisce i valori nell'array, ma come sotto cartelle mi viene presa sempre l'ultima che legge. Ho capito il motivo, in pratica bisognerebbe creare un sotto array dinamicamente, ma non so come. Questo è il codice php che ho.

Codice PHP:
$listaCTOT=array();
function 
getTotalListCart($dir,$cart='',$ar=''){
    global 
$listaCTOT;
    if (
is_dir($dir)) {
        if (
$myDir opendir($dir)) {
            
$tmpName=explode('/',$dir );
            
$tmpName=array_reverse($tmpName);
            
$new=array();
            for(
$r=0;$r<count($tmpName);$r++)
                if(!
$tmpName[$r])
                    unset(
$tmpName[$r]);
                else
                    
$new[]=$tmpName[$r];
            
$tmpName=$new;
            while (
false !== ($myFile readdir($myDir))) {
                if(
is_dir($dir.'/'.$myFile) && $myFile!='.' && $myFile!='..'){
                    if(
$cart)
                        
$ar[$cart]=array($myFile=>$myFile);
                    else
                        
$listaCTOT[$myFile]=$myFile;
                    if(
$ar)
                        
$listaCTOT=$ar;
                    
getTotalListCart($dir.'/'.$myFile,$myFile,$listaCTOT);
                }
            }
            
closedir($myDir);
            return 
$listaCTOT;
        }
    }

Qualcuno sa aiutarmi?