Foros del Web » Programando para Internet » PHP »

Separar array en 2 cadenas..

Estas en el tema de Separar array en 2 cadenas.. en el foro de PHP en Foros del Web. Hola que tal.. tengo este array de recibo de un post $cadena = "91,playera-92,playerb-93,playerc-94,playerd-95,playere"; Si utilizo explode("-",$cadena); me devuelve 91,playera 92,playerb ... 95,playere Pero no ...
  #1 (permalink)  
Antiguo 20/08/2008, 08:27
 
Fecha de Ingreso: mayo-2005
Mensajes: 43
Antigüedad: 19 años
Puntos: 0
Pregunta Separar array en 2 cadenas..

Hola que tal.. tengo este array de recibo de un post

$cadena = "91,playera-92,playerb-93,playerc-94,playerd-95,playere";

Si utilizo explode("-",$cadena); me devuelve
91,playera
92,playerb
...
95,playere

Pero no es lo que quiero.. sino..

$cadena1 = "'91','92','93','94','95'";
$cadena2 = "'playera','playerb','playerc','playerd','playere' ";

Preparado para un UPDATE ... WHERE IN ($cadena)

Se puede?
  #2 (permalink)  
Antiguo 20/08/2008, 08:34
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Respuesta: Separar array en 2 cadenas..

Puedes usar un segundo explode con la coma (,) y agregar las dos partes a sus respectivas cadenas.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 20/08/2008, 08:39
 
Fecha de Ingreso: agosto-2007
Mensajes: 345
Antigüedad: 16 años, 8 meses
Puntos: 21
Respuesta: Separar array en 2 cadenas..

creo que funcionaria asi:

Código PHP:
$cadena "91,playera-92,playerb-93,playerc-94,playerd-95,playere";

$cadena explode(",",$cadena);

$i=0;
foreach(
$cadena as $valores)
{
   
$valores explode("-",$valores);

   
$numeros[$i] = $valores[1];
   
$letras[$i] = $valores[0];
   
$i++;

ahora en array $numeros solo tienes los numeros y en array $letras solo los nombres.
  #4 (permalink)  
Antiguo 20/08/2008, 08:40
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Separar array en 2 cadenas..

Que tal thefantas, prueba usar algo así;

Código PHP:
$cadena "91,playera-92,playerb-93,playerc-94,playerd-95,playere";
$cadena1 '';
$cadena2 '';
foreach( 
explode("-"$cadena) as $datos ){
 foreach( 
explode("," $datos) as $cadenas){
   
$cadena1.= $cadenas[0];
   
$cadena2.= $cadenas[1];}}
   echo 
$cadena1;
   echo 
$cadena2

Saludos.
  #5 (permalink)  
Antiguo 20/08/2008, 10:13
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Separar array en 2 cadenas..

Código PHP:
$cadena "91,playera-92,playerb-93,playerc-94,playerd-95,playere";

// concuerda con "dos números seguidos por una coma, seguidos por 'player' y una o más letras"
preg_match_all("/([0-9]{2}),(player[a-z]{1,})/"$cadena$coincidencias);

$cadena1 implode(','$coincidencias[1]);
$cadena2 implode(','$coincidencias[2]); 
Las expresiones regulares son tus amigas

Si la cadena no es lo suficientemente general, se puede modificar para dejar el patrón como algo así:

Código:
/([0-9]+),([a-z]+)/

Saludos.
  #6 (permalink)  
Antiguo 20/08/2008, 22:51
 
Fecha de Ingreso: mayo-2005
Mensajes: 43
Antigüedad: 19 años
Puntos: 0
Respuesta: Separar array en 2 cadenas..

Hola que tal.. las 2 primeras me botaron error.. con preg_match_all si me salio.. lo de [0-9] va perfecto porque siempre es un número (ID) lo otro cualquier caracter (incluyendo el guion..)

el separador (-) guión lo puedo cambiar por otro menos común...

Como sería la expresión regular :$?
  #7 (permalink)  
Antiguo 20/08/2008, 23:01
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Separar array en 2 cadenas..

Puedes poner en la expresion regular: ^-
Asi no excluyes el guion.
  #8 (permalink)  
Antiguo 20/08/2008, 23:32
 
Fecha de Ingreso: mayo-2005
Mensajes: 43
Antigüedad: 19 años
Puntos: 0
Respuesta: Separar array en 2 cadenas..

Grax Ronruby.. me quedó así..

Cita:
preg_match_all("/([0-9]+),([^-.]+)/", $cadena, $coincidencias);
La primera parte me coge cualquier número.. (como es ID perfecto) la segunda parte cualquier caracter (los especiales también) menos el guión (-).

PD. si hay otra sugerencias, bienvenida.

Saludos..
  #9 (permalink)  
Antiguo 21/08/2008, 07:16
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Separar array en 2 cadenas..

thefantas, hay un error de concepto en tu patrón.
El punto dentro de una clase de caracteres (lo que se delimita con [ y ]) no funciona como comodín, sino que tiene su significado literal.
Esto resulta en que tu patrón no dice "cualquier caracter que no sea un guión" sino "cualquier caracter que no sea un guión o un punto".

Lograrías el mismo efecto dejándolo como [^-]+

Ahora, no me queda claro si querés incluir el guión o no, en mi primer ejemplo estoy seguro de que no se captura. Aclará eso, por favor.


Saludos
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 06:51.