Guarda dopo aver letto cosa hai scritto mi è sorto un dubbio anche se sinceramente ricordavo che i cicli in una funzione FUNZIONA.... (scusa il gioco di parole)

per togliermi questo dubbio ho provato la funzione come l'ho scritta qui sopra per te in una pagina vuota e l'ho lanciata risultato che ti sbagli i cicli in una funzione vengono eseguiti

lo prova anche il fatto degli echo che ci sono dentro...

testa la funzione da sola e prova