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
En el explode debería ser $miarreglo = explode (‘|’,$micadena); y llamar a $miarreglo[0],… y no $micadena[0]
Corregido, gracias por informar
Excelente explicación! muchas gracias!