Foros del Web » Programando para Internet » PHP »

separar cadena en variables

Estas en el tema de separar cadena en variables en el foro de PHP en Foros del Web. hola forer@s, saludos! tengo una variable: $cad = nombre_apellido necesito identificar el _ y obtener en variables separadas nombre y apellido: $cad0 = nombre $cad1 ...
  #1 (permalink)  
Antiguo 26/11/2012, 08:59
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 13 años, 11 meses
Puntos: 23
separar cadena en variables

hola forer@s, saludos!

tengo una variable:

$cad = nombre_apellido

necesito identificar el _ y obtener en variables separadas nombre y apellido:

$cad0 = nombre
$cad1 = apellido

pero si la cadena fuera:

$cad = nombre_apellido1_apellido2

obtener:

$cad0 = nombre
$cad1 = apellido1
$cad2 = apellido2

Alguien sabe que funcion o funciones me pueden ayudar en este caso, gracias
  #2 (permalink)  
Antiguo 26/11/2012, 09:16
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: separar cadena en variables

Código PHP:
Ver original
  1. $cad = nombre_apellido1_apellido2;
  2. $cad=explode('_',$cad);
con eso tendrás un array con los resultados que deseas.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #3 (permalink)  
Antiguo 26/11/2012, 09:54
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 13 años, 11 meses
Puntos: 23
Respuesta: separar cadena en variables

gracias eits, ya lo logre

aqui les dejo un código muy sencillo para convertir palabras de plural a singular, obviamente es de acuerdo a mis necesidades,

Código PHP:
Ver original
  1. $array_palabras = array("Maravillas","Canciones","Magos","Lagos_Bonitos","Casa");
  2. $array_singular = array();
  3. foreach($array_palabras as $cad){
  4.     if(strstr($cad,"_")){
  5.         $cad = explode("_",$cad);
  6.         $new_cad = array();
  7.         foreach($cad as $var){
  8.             $ultima = substr($var, -1);
  9.             $penultima = substr($var, -2, 1);
  10.             if($ultima=="s" || $ultima=="S"){
  11.                 if($penultima=="a" || $penultima=="A" || $penultima=="o" || $penultima=="O"){
  12.                     $var = substr($var, 0, -1);
  13.                 } else{
  14.                     if($penultima=="e" || $penultima=="E"){
  15.                         $var = substr($var, 0, -2);
  16.                     }
  17.                 }
  18.             }
  19.             array_push($new_cad,$var);
  20.         }
  21.         $new_cad = implode("_", $new_cad);
  22.         array_push($array_singular,$new_cad);
  23.     }
  24.     else{
  25.         $ultima = substr($cad, -1);
  26.         $penultima = substr($cad, -2, 1);
  27.         if($ultima=="s" || $ultima=="S"){
  28.             if($penultima=="a" || $penultima=="A" || $penultima=="o" || $penultima=="O"){
  29.                 array_push($array_singular,substr($cad, 0, -1));
  30.             } else{
  31.                 if($penultima=="e" || $penultima=="E"){
  32.                     array_push($array_singular,substr($cad, 0, -2));
  33.                 }
  34.             }
  35.         }
  36.         else{
  37.             array_push($array_singular,$cad);
  38.         }
  39.     }
  40. }
  41. print_r($array_singular);
  42. //Array ( [0] => Maravilla [1] => Cancion [2] => Mago [3] => Lago_Bonito [4] => Casa )

Se agradecen mejoras

Etiquetas: variables, cadenas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:12.