Bonjour,

Je suis entrain de travailler sur une API Cinéma.
De cette API j'extrais des données et notamment celle des pays de production
Quand plusieurs pays sont impliqués dans le projet l'API me les listent les uns sous les autres alors que j'aimerai tout mettre sur la même ligne. J'ai stocké la liste des pays dans une variable $pays.
J'ai donc fait un
echo implode (',' , $pays);

mais j'ai les messages d'erreurs suivants

Fatal error: Uncaught TypeError: implode(): Argument #2 ($array) must be of type ?array, string given in /homepages/29/d931857138/htdocs/fr/ficheFilm.php:33 Stack trace: #0 /homepages/29/d931857138/htdocs/fr/ficheFilm.php(33): implode(',', 'United Kingdom') #1 {main} thrown in /homepages/29/d931857138/htdocs/fr/ficheFilm.php on line 33

C'est possiblement dû au fait que les données ne soient pas dans un array je pense.
Est-ce que quelqu'un peut m'aiguiller sur une solution pour corriger mon problème auquel je n'arrive pas à trouver de solution ?
Merci par avance
Michel
Modérateur
Salut,

newbyfr a écrit :
C'est possiblement dû au fait que les données ne soient pas dans un array je pense.
Si il faut un array et que c'est pas dans un array c'est sur que ca vient peut etre de là Smiley lol Mais du coup c'est quoi dans $pays exactement ?
$pays contient les pays de production donnés par l'API
Lorsque je n'utilise pas le implode ça fonctionne nickel sauf que ça me met les pays les uns au dessous des autres. Par exemple un film dont les pays de production sont l'Allemagne, la France et les Etats-Unis, ça me donne

Pays : Allemagne
Pays : France
Pays : Etats-Unis

Alors que moi j'aimerai afficher
Pays : Allemagne, France, Etats-Unis
Modifié par newbyfr (25 Oct 2022 - 11:56)
Salut,

je pige pas bien je crois, tu pourrais nous sortir un var_dump de ta variable $pays ?

Parce que si $pays est un string qui contient la liste des pays, tu fais juste echo $pays et tu auras la liste non ?
Modifié par Mathieuu (25 Oct 2022 - 14:24)
Justement c'est ce que j'ai expliqué dans mon précédent post. Un echo de $pays donne :

Pays1
Pays2
Pays3

Alors que moi je souhaite afficher : Pays1, Pays2, Pays3 (d'où mon utilisation infructueuse de implode)
Modérateur
Si il te donne :

Pays : Allemagne
Pays : France
Pays : Etats-Unis

Si tu veux juste "Pays : Allemagne, France, Etats-Unis" il va aussi falloir virer les "Pays : " des lignes 2 et 3 non ?
du coup si c'est pas un array ca doit être un string avec des retour à la ligne (?) Smiley sweatdrop Donc ptère regarder plutot du coté de replace : https://www.w3schools.com/jsref/jsref_replace.asp

C'est ton API ? Il faudrait peut être revoir le format de la réponse plutôt que de tordre cette réponse pour avoir ce que tu veux non ?
Merci, je vais voir le replace. Evidemment non ce n'est pas mon API sinon je n'aurai pas eu ce problème
Bon j'ai fini par trouver la solution, le replace n'était pas la solution. C'était tout bête il suffisait de concaténer le contenu de la variable et de placer son echo en dehors de la boucle.
Sujet résolu.
Merci pour votre aide
Modifié par newbyfr (29 Oct 2022 - 12:41)