Durante il ciclo, prova a printare il contenuto del contatore $i, tanto per capire se il ciclo termina correttamente oppure si verifica un qualche evento che lo fa interrompere prima del previsto.

Ciao