Ton tableau généré ici :
foreach($value AS $c => $v){
if($c !== $last_key) {
$key .= $c.',';
$val .= "'".$v."',";
}
}
Doit comporter un champs supplémentaire, un blanc etc qui n'est pas présent $key (ou inversement). Fait un var_dump($key); var_dump($val); et vérifie qu'a chaque key il y a bien une val et inversement.
Ensuite $val .= "'".$v."',"; et $lastkey, utilise implode(',', $v); c'est fait pour et pu besoin de last key, il la détecte tout seul. Et les return 'Réussit' et 'Erreur' utilise les boléan true et false c'est aussi fait pour ;) Après ce ne sont que des conseils d'optimisation fait comme tu veut.
;)