El uso de Implode y Explode de PHP

Para los que nos gusta manejar cadenas cuando programamos, en PHP existe 2 funciones que nos permiten convertir un arreglo en cadena definiendo un delimitador y viceversa

La función Implode:
Sintaxis: «string implode ( string $glue , array $pieces )»

Básicamente convierte cualquier Array ($pieces) dimensional en una cadena separado por el delimitador ($glue)

ejemplo:

$miarreglo1 = array('el','código','fuente');

$miarreglo2[] = 'Programación';
$miarreglo2[] = 'en';
$miarreglo2[] = 'php';

$salida1 = implode('-',$miarreglo1);
$salida2 = implode('|',$miarreglo2);

echo $salida1;
echo '<br />';
echo $salida2;

El resultado será 2 cadenas con lo siguiente: :
el-código-fuente
Programacion|en|php

Más información: PHP: implode – Manual

_________________________________________________
La función Explode:
Sintaxis: «array explode ( string $delimiter , string $string )»
Nota: está función tiene 1 parámetro más que lo puedes ver en la web oficial
Es lo contrario al implode, devuelve un array indicándole un delimitador y la cadena a procesar

Ejemplo

$micadena = "el|foro|de|programacion";
$miarreglo = explode ('|',$micadena);

el resultado será un array de 4 elementos con los índices del 0 al 3 y en cada uno es una parte de la cadena delimitado por el | ($miarreglo[0]=el, $miarreglo[0]=foro, etc…) y ya lo podemos trabajar como tal (con el foraeach por ejemplo)

Más información: PHP: explode – Manual
______________
Un uso interesante manejar los datos como arrays y cuando quieran hacer una consulta SQL con un IN () le puedes poner el implode

$id[]=1;
$id[]=2;
$id[]=3;
$id[]=4;
$sql = 'select * from tabla where numberid in (0'.implode(',',$id).')';

PD: pongo en el in un «0» por si la cadena me da VACIO, cosa que así me aseguro que el IN tenga al menos un valor

3 Comentarios para “El uso de Implode y Explode de PHP”

  1. En el explode debería ser $miarreglo = explode (‘|’,$micadena); y llamar a $miarreglo[0],… y no $micadena[0]

    1. Corregido, gracias por informar

  2. Excelente explicación! muchas gracias!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *