si perchè quando incontri una directory, richiami di nuovo la funzione getFiles, dove hai messo $i = 1.
devi cambiare un pò la funzione, per avere un contatore "globale".