PHP / explode – de string a array
Es prácticamente el opuesto a implode. La función de PHP explode divide un string en varios substrings los cuales son almacenados en un array.
Es una función en la cual generalmente se usa sus 2 primeros parámetros: el primero es el delimitador, que se utiliza para dividir la cadena en subcadenas; el segundo es la cadena que será dividida. El delimitador no estará presente en los substrings que forman parte del array resultante.
También se puede usar un tercer parámetro llamado $limit
.
Este parámetro es el limiter de divisiones, por ende si es 3 obtendremos 3 substrings, el último substring tendrá el resto del string principal cumpla o no con el delimitador.
Sintaxis de explode
explode($delimitador,$string,$limit)
$delimitador
– es un string que contiene el carácter o conjunto de caracteres por el cual queremos cortar nuestro string.
$string
– es el string al cual le aplicaremos explode.
$limit
– la mayoría de las veces $limit no es utilizado, aunque si es utilizado explode devolverá la cantidad de elementos especificados en $limit con el último elemento devolviendo el resto del string, en caso de ser negativo lo que hará es devolver el array sin la cantidad de elementos que digamos
Posibles usos de PHP Explode
En este apartado veremos algunas de las situaciones en las que podríamos utilizar la función explode, recordemos que explode separa un string según un carácter especificado en un array.
CSV
En ocasiones es probable que tengas que trabajar con CSV, los CSV tienen una estructura como la siguiente:
Lunes,martes,miércoles,jueves,viernes,sábado,domingo
La data anterior correspondería a una fila
Lo más probable es que tengamos que tener la data separada, ahí es donde entra explode.
$linea = " Lunes,martes,miércoles,jueves,viernes,sábado,domingo"; $datos = explode(",", $linea);
URLs
Esto lo hemos hecho un montón de veces en el blog, pero si obviamente que podemos querer separar la URL en muchos casos, por ejemplo en rutas para una web, un framework que estemos haciendo sacar data de la URL, etc.
Hay un ejemplo en ejemplos.
Parámetros de URL
$parametros = "param1=value1¶m2=value2¶m3=value3"; $parametrosArray = explode("&", $parametros);
Fechas
Supongamos que estamos haciendo algo parecido a WordPress, este tiene una carpeta update, dentro de update crea carpetas del año y mes, cuando se subieron los archivos podríamos usar explode para hacer estas carpetas.
<?php $fechahoy= time(); $fh= date('Y-m-d', $fechahoy); $arrfecha = explode("-",$fh); foreach ($arrfecha as $element){ echo "<p>$element</p>"; }
Estos son algunos ejemplos donde podrías usar explode
Ejemplos
Por ejemplo, imagine que tenemos una URL y queremos sacar algún valor en especial.
with variable $limit not specified<?php $url = "hombres/camisetas/rojas"; $array = explode("/",$url); echo $array[0]."\n"; echo $array[1]."\n"; echo $array[2]."\n"; ?>
hombres camisetas rojas
Hagamos unos ejemplos con utilizando la variable $limit
$limit=2<?php $url = "hombres/camisetas/rojas"; $array = explode("/",$url,2); var_dump($array); ?>
array(2) { [0]=> string(7) "hombres" [1]=> string(15) "camisetas/rojas" }
Ahora cambiemos $limit a -2
explode example with $limit=-2<?php $url = "hombres/camisetas/rojas"; $array = explode("/",$url,-2); var_dump($array); ?>
array(1) { [0]=> string(7) "hombres" }
Haré un último ejemplo con $limit= -1
para terminar de cerrar el concepto de como funciona $limit
<?php $url = "hombres/camisetas/rojas"; $array = explode("/",$url,-1); var_dump($array); ?>
array(2) { [0]=> string(7) "hombres" [1]=> string(9) "camisetas" }