Dovresti riportarci anche l'errore che ti dà, altrimenti non possiamo capire.

Intant ti posso dire che il valore 'caio' di $riga deve essere racchiuso tra virgolette, altrimenti non viene visto come stringa.

Per il resto la logica pare giusta.
Probabilmente è un errore nel confronto tra le due stringhe: in qualche modo si vedonon differenti.
Prova a stamparle con 'echo' via via che le scorri, per vedere se i valori sono quelli che ti aspetti.