Menu

PHP implode(): unir los elementos de un array en un string

implode(', ', $array) une los valores de un array en una cadena con un separador entre ellos. Aprende implode con claves, arrays asociativos, cómo generar listas HTML y la diferencia entre implode y join.

Esta página incluye editores ejecutables: edita, ejecuta y ve el resultado al instante.

implode($separator, $array) une los valores de un array en una cadena, con $separator entre cada pareja: implode(', ', ['red', 'green', 'blue']) devuelve "red, green, blue".

El separador solo va entre los elementos, nunca antes del primero ni después del último. Es lo contrario de explode(), que divide una cadena en un array.

Sintaxis

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

Primero va el separador. El código antiguo a veces pasaba primero el array, implode($array, ', '). Ese orden quedó obsoleto en PHP 7.4 y se eliminó en PHP 8.0, donde lanza TypeError: implode(): Argument #2 ($array) must be of type ?array, string given.

implode vs join

join() es un alias de implode(). Aceptan los mismos argumentos y devuelven la misma cadena, así que elige uno y sé coherente.

Qué pasa con los números, los booleanos y null

Cada valor se convierte antes en cadena. Los números se imprimen como esperas, true se convierte en "1", y false y null se convierten en cadenas vacías, lo que deja dos separadores seguidos.

implode de un array asociativo

implode() ignora las claves y une solo los valores. Para obtener pares key=value, construye cada trozo con array_map() sobre las claves y los valores, y luego únelos. http_build_query() hace lo mismo para una query string de URL y además codifica los espacios y los caracteres especiales.

El mismo patrón une solo las claves: implode(', ', array_keys($user)). Hay más sobre claves y valores en la página de arrays asociativos.

Unir con un salto de línea o generar una lista HTML

El separador puede ser cualquier cadena. "\n" (entre comillas dobles) pone cada valor en su propia línea, algo útil para archivos de texto y para la salida en la línea de comandos. Con etiquetas HTML como separador, implode() construye una lista en una línea. Ejecuta el siguiente bloque y la pestaña Página muestra la lista renderizada.

Escapar cada valor con htmlspecialchars() antes de unir evita que un valor como <b> se convierta en marcado.

Unir con "y" antes del último elemento

Una lista legible para personas suele necesitar "y" antes del último elemento. Sácalo, une el resto y vuelve a añadirlo:

Error frecuente: arrays anidados

implode() trabaja con un solo nivel. Un elemento que es a su vez un array se convierte en la palabra Array, y PHP imprime un warning:

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

Aplana antes los arrays interiores, o une cada uno por separado:

Preguntas frecuentes

¿Qué hace implode() en PHP?

Une los valores de un array en una cadena, poniendo el separador entre ellos: implode(', ', ['a', 'b', 'c']) devuelve "a, b, c". Es lo contrario de explode().

¿Cuál es la diferencia entre implode() y join()?

Ninguna. join() es un alias de implode(): mismos argumentos, mismo resultado. implode() es el nombre que verás en la mayoría del código.

¿Cómo hago implode de un array asociativo con sus claves?

implode() solo usa los valores. Para incluir las claves, construye antes los trozos: implode(', ', array_map(fn($k, $v) => "$k=$v", array_keys($a), $a)). Para una query string de URL, http_build_query($a) lo hace en una llamada.

¿Por qué implode() da un TypeError en PHP 8?

Porque los argumentos están en el orden antiguo. implode($array, ', ') quedó obsoleto en PHP 7.4 y se eliminó en PHP 8.0. Escribe primero el separador: implode(', ', $array).

¿Cómo convierto un array en una cadena separada por comas en PHP?

implode(',', $array). Usa ', ' como separador si quieres un espacio después de cada coma. Para un archivo CSV, usa fputcsv(), que además pone entre comillas los valores que contienen comas.

Ilustración de los lenguajes de programación de Coddy

Aprende a programar con Coddy

COMENZAR