join()
La función join() en PHP une los elementos de un array en una cadena. También se conoce como la función implode().
Introducción
La función join() en PHP une los elementos de un array en una sola cadena, colocando un separador (frecuentemente llamado "pegamento" o "glue") entre cada elemento. Es un alias de implode() — ambas funciones son idénticas, por lo que puedes usar la que mejor se lea en tu código.
Esta página cubre la sintaxis de join(), las dos formas de llamarla, qué ocurre con valores de tipos mixtos y valores anidados, y los errores comunes que debes evitar.
Sintaxis
join(string $separator, array $array): string
join(array $array): string$separator— la cadena de unión que se inserta entre cada elemento. Si se omite, se usa una cadena vacía"".$array— el array cuyos valores se unen. Solo se usan los valores; las claves del array se ignoran.
La función devuelve la cadena resultante.
Orden de los argumentos: Como
join()es un alias deimplode(), el orden histórico "separador primero, array segundo" es el que debes usar. La forma heredada donde el array iba primero fue eliminada en PHP 8.0.
Ejemplo básico
Esto produce:
apple, banana, orangeAquí join() une los tres valores con ", " entre ellos. El resultado se almacena en $fruit_string y se imprime con echo.
Unir sin separador
Si llamas a join() con solo el array, los elementos se concatenan directamente sin nada entre ellos:
<?php
$parts = ["2024", "06", "21"];
echo join($parts); // 20240621
echo "\n";
echo join("-", $parts); // 2024-06-21Cómo se convierten los valores
Cada valor se convierte a cadena antes de unirse, siguiendo las reglas normales de conversión de cadenas de PHP:
<?php
$mixed = [1, 2.5, true, false, null, "text"];
echo join("|", $mixed);Esto produce:
1|2.5|1|||textObserva que true se convierte en "1", mientras que false y null se convierten en cadenas vacías — por eso aparecen separadores | consecutivos. Ten cuidado al unir arrays que puedan contener booleanos o null.
Generar salida CSV o HTML
join() es muy útil cuando necesitas convertir una lista en texto — cadenas de consulta, filas CSV o una lista de atributos HTML:
<?php
$row = ["Alice", "[email protected]", "Admin"];
echo join(",", $row); // Alice,[email protected],Admin
echo "\n";
$classes = ["btn", "btn-primary", "active"];
echo '<button class="' . join(" ", $classes) . '">OK</button>';Errores comunes
- Los arrays multidimensionales no funcionan.
join()solo aplana un nivel. Un elemento de array anidado se convierte en la cadena literal"Array"y emite una advertencia. Aplana los datos primero. join()es la operación inversa deexplode(). Usaexplode()para dividir una cadena en un array yjoin()/implode()para volver a unirla.- Las claves se descartan. Tanto las claves numéricas como las de cadena se ignoran; solo se unen los valores, en su orden interno.
Funciones relacionadas
implode()— función idéntica bajo su nombre principal.explode()— divide una cadena en un array (la operación inversa).str_split()— divide una cadena en fragmentos de longitud fija.