Separar y Extraer elementos de una cadena con numeros y letras!

publicado por: Anonymous

Como puedo extraer ciertos elementos de una cadena?
ejemplo:

 $cadena="11d08mo2016y";

de la cual necesito extraer unicamente los numeros dados de x cadena por separado quedando asi!

$cadena[0]=11
$cadena[1]=08
$cadena[2]=2016

estaba probando con la funcion explode,pero al parecer no destruye la cadena en partes, de antemano gracias!

 $day= explode("d",$cadena);

solución

explode separa por el delimitador que tu le des, en este caso "d", por lo que te traerá 2 cadenas el resultado [11, 08mo2016y] al segundo resultado tendrías que hacer otro explode con el segundo elemento y así sucesivamente, puedes hacerlo mediante recursividad o iteración

function explodeFecha($dato) {
   $delimitadores = ['d', 'mo', 'y'];
   $arreglo = [];
   foreach($delimitadores as $delimiter) {
      $explodeDato = explode($delimiter, $dato);
      $arreglo[] = $explodeDato[0];
      $dato = isset($explodeDato[1])? $explodeDato[1] : NULL;
      //si usas php 7 o sueperior puedes usar para simplificar
      //$dato = $explodeDato[1] ?? NULL;
   }
   return $arreglo;
}

print_r(explodeFecha('11d08mo2016y'));

Lo recomendable también sería que validaras que el formato es el deseado para que no salten errores

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *