W3docs

implode()

Artículo sobre la función implode() de PHP, que une elementos de un array con una cadena. Útil para trabajar con arrays y cadenas de texto.

La función implode() de PHP une los elementos de un array en una sola cadena, colocando un separador (el pegamento o glue) entre cada elemento. Es la función a la que se recurre cuando se tiene una lista de valores y se necesita una cadena: una lista separada por comas, una ruta de URL, una fila CSV o una cláusula SQL IN (...). Es el inverso exacto de explode(), que divide una cadena de nuevo en un array.

Esta página cubre la sintaxis, el valor de retorno y los casos que generan confusión: el pegamento opcional, los arrays asociativos, los arrays vacíos y cómo se convierten los valores que no son cadenas.

Sintaxis

implode(string $separator, array $array): string
implode(array $array): string   // legacy: separator defaults to ""
ParámetroDescripción
$separatorLa cadena colocada entre cada elemento. Frecuentemente llamada glue (pegamento).
$arrayEl array de valores a unir.

Valor de retorno: una sola cadena que contiene todos los elementos del array unidos por $separator, en su orden original.

La función nunca modifica el array original — devuelve una nueva cadena.

Un ejemplo básico

php— editable, runs on the server

Cada elemento se une con un espacio en blanco, produciendo:

Hello World !

Usar un separador diferente

El pegamento puede ser cualquier cadena, no solo un carácter. Aquí unimos con un guion:

php— editable, runs on the server

Salida:

Hello-World-!

Un uso habitual en el mundo real es construir una lista separada por comas para mostrarla o para una consulta:

<?php
$ids = [4, 7, 12, 19];
echo 'WHERE id IN (' . implode(', ', $ids) . ')';
// WHERE id IN (4, 7, 12, 19)
?>

Unir un array asociativo

implode() ignora las claves por completo y une únicamente los valores, en el orden de inserción:

<?php
$user = ['id' => 1, 'name' => 'Sam', 'role' => 'admin'];
echo implode(' | ', $user);
?>

Salida:

1 | Sam | admin

Si también se necesitan las claves (por ejemplo id=1&name=Sam), usa http_build_query() o array_map() sobre las claves — implode() por sí sola no puede verlas.

Casos límite y trampas comunes

Array vacío. Unir un array vacío siempre devuelve una cadena vacía, independientemente del separador:

<?php
echo '[' . implode(', ', []) . ']';   // []
?>

Los valores que no son cadenas se convierten a cadenas. Los números, los booleanos y null se convierten usando las reglas normales de PHP para cadenas — lo que puede sorprender: true se convierte en "1", mientras que false y null se convierten en "" (cadena vacía):

<?php
echo implode(', ', [1, 2.5, true, null, 'x']);
// 1, 2.5, 1, , x
?>

Si quieres filtrar los valores null/false, pasa el array por array_filter() antes de unirlo.

El separador es opcional. Llamar a implode($array) sin pegamento concatena los valores directamente. Se recomienda pasar el separador primero para mayor legibilidad:

<?php
echo implode(['a', 'b', 'c']);   // abc
?>

Antes de PHP 8.0 los dos argumentos podían pasarse en cualquier orden (implode($array, $glue)). Ese comportamiento histórico fue eliminado en PHP 8.0 — siempre pasa el separador primero.

implode() vs explode()

implode() y explode() son operaciones espejo: una construye una cadena a partir de un array, la otra reconstruye el array a partir de la cadena.

<?php
$csv  = implode(',', ['red', 'green', 'blue']); // "red,green,blue"
$back = explode(',', $csv);                      // ['red', 'green', 'blue']
?>

join() es simplemente un alias de implode() — ambas son intercambiables. Consulta join() y explode() para más información.

Práctica

Práctica
¿Cuál es el propósito de la función implode() en PHP?
¿Cuál es el propósito de la función implode() en PHP?
Was this page helpful?