Menu

PHP implode() : assembler un tableau en chaîne

implode(', ', $array) assemble les valeurs d'un tableau en une seule chaîne avec un séparateur entre elles. implode avec les clés, les tableaux associatifs, construire des listes HTML, et la différence entre implode et join.

Cette page contient des éditeurs exécutables - modifiez, exécutez et voyez la sortie instantanément.

implode($separator, $array) assemble les valeurs d'un tableau en une seule chaîne, avec $separator entre chaque paire : implode(', ', ['red', 'green', 'blue']) renvoie "red, green, blue".

Le séparateur se place uniquement entre les éléments, jamais avant le premier ni après le dernier. C'est l'inverse d'explode(), qui découpe une chaîne en tableau.

Syntaxe

implode(string $separator, array $array): string
implode(array $array): string   // separator defaults to ""

Le séparateur vient en premier. Du code ancien passait parfois le tableau en premier, implode($array, ', '). Cet ordre a été déprécié en PHP 7.4 et supprimé en PHP 8.0, où il lève TypeError: implode(): Argument #2 ($array) must be of type ?array, string given.

implode ou join

join() est un alias d'implode(). Elles prennent les mêmes arguments et renvoient la même chaîne, choisissez-en donc une et tenez-vous-y.

Ce que deviennent les nombres, les booléens et null

Chaque valeur est d'abord convertie en chaîne. Les nombres s'affichent comme prévu, true devient "1", et false et null deviennent des chaînes vides, ce qui laisse deux séparateurs à la suite.

implode sur un tableau associatif

implode() ignore les clés et n'assemble que les valeurs. Pour obtenir des paires key=value, construisez chaque morceau avec array_map() sur les clés et les valeurs, puis assemblez. http_build_query() fait la même chose pour une query string d'URL et encode aussi les espaces et caractères spéciaux.

Le même modèle assemble seulement les clés : implode(', ', array_keys($user)). Les clés et valeurs sont détaillées sur la page des tableaux associatifs.

Assembler avec un saut de ligne ou construire une liste HTML

Le séparateur peut être n'importe quelle chaîne. "\n" (entre guillemets doubles) met chaque valeur sur sa propre ligne, pratique pour des fichiers texte et la sortie en ligne de commande. Avec des balises HTML comme séparateur, implode() construit une liste en une ligne. Exécutez le bloc suivant et l'onglet Page affiche la liste rendue.

Échapper chaque valeur avec htmlspecialchars() avant l'assemblage empêche une valeur comme <b> de devenir du balisage.

Assembler avec « et » avant le dernier élément

Une liste lisible demande en général « et » avant le dernier élément. Retirez-le, assemblez le reste, puis rajoutez-le :

Erreur fréquente : les tableaux imbriqués

implode() travaille sur un seul niveau. Un élément qui est lui-même un tableau est converti en mot Array, et PHP affiche un warning :

<?php
echo implode(', ', ['red', ['orange', 'yellow']]);
Warning: Array to string conversion in /home/index.php on line 2
red, Array

Aplatissez d'abord les tableaux intérieurs, ou assemblez chacun séparément :

Questions fréquentes

Que fait implode() en PHP ?

Elle assemble les valeurs d'un tableau en une seule chaîne, en plaçant le séparateur entre elles : implode(', ', ['a', 'b', 'c']) renvoie "a, b, c". C'est l'inverse d'explode().

Quelle est la différence entre implode() et join() ?

Aucune. join() est un alias d'implode() : mêmes arguments, même résultat. implode() est le nom que vous verrez dans la plupart du code.

Comment faire un implode d'un tableau associatif avec ses clés ?

implode() n'utilise que les valeurs. Pour inclure les clés, construisez d'abord les morceaux : implode(', ', array_map(fn($k, $v) => "$k=$v", array_keys($a), $a)). Pour une query string d'URL, http_build_query($a) le fait en un seul appel.

Pourquoi implode() donne-t-elle une TypeError en PHP 8 ?

Parce que les arguments sont dans l'ancien ordre. implode($array, ', ') a été déprécié en PHP 7.4 et supprimé en PHP 8.0. Écrivez le séparateur en premier : implode(', ', $array).

Comment convertir un tableau en chaîne séparée par des virgules en PHP ?

implode(',', $array). Utilisez ', ' comme séparateur si vous voulez un espace après chaque virgule. Pour un fichier CSV, utilisez fputcsv(), qui met aussi entre guillemets les valeurs contenant des virgules.

Illustration des langages de programmation de Coddy

Apprendre à coder avec Coddy

COMMENCER