y'a rien qui te choque ?
foreach marche sur un tableau utf8_decode attend une chaine
faire un foreach sur un chaine ca marche pas, faire un utf8_decode sur un tableau pareil...
enleve tout ca
fait toujours un var_dump de ta donnée avant de faire quelque chose, on dirait que tu codes a l'aveuglette.
Et oublie pas que de ton coté l'encodage n'est pas bon non plus