Foros del Web » Programando para Internet » PHP »

Separar números en string

Estas en el tema de Separar números en string en el foro de PHP en Foros del Web. Hola! Tengo un problemilla desde hacer un par de días y no se me ocurre manera de solucionarlo. Tengo un string compuesto por bloques de ...
  #1 (permalink)  
Antiguo 14/11/2007, 12:08
 
Fecha de Ingreso: octubre-2007
Mensajes: 30
Antigüedad: 16 años, 6 meses
Puntos: 0
Separar números en string

Hola!
Tengo un problemilla desde hacer un par de días y no se me ocurre manera de solucionarlo.
Tengo un string compuesto por bloques de números y texto separados entre sí por distintos tipos de caracteres (espacio, guión, guión bajo etc...) y necesito separar los bloques de números en distintas variables, eliminando todo los datos que no sean numéricos para luego poder evaluar los bloques de números por separado.

Es decir, si tengo:
1234234-234 - Valencia / 46001
Obtener:
$var1=1234234
$var2=234
$var3=46001

"Teóricamente" es facil, pero llevo dos días haciendo pruebas y no hay manera.
Muchas gracias
  #2 (permalink)  
Antiguo 14/11/2007, 12:20
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 16 años, 11 meses
Puntos: 6
Re: Separar números en string

Hola puedes usar la funcion explode(), seria algo como esto:
$tustring="1234234-234 - Valencia / 46001";
$separado=explode("-",$tustring);
echo "Mi arreglo tiene estos valores: " ;
print_r($separado);
__________________
"Eres grande por que caminas entre gigantes"
  #3 (permalink)  
Antiguo 14/11/2007, 12:21
 
Fecha de Ingreso: noviembre-2007
Mensajes: 157
Antigüedad: 16 años, 5 meses
Puntos: 3
Re: Separar números en string

Con expresiones regulares

Código PHP:
$texto '1234234-234 - Valencia / 46001';
preg_match_all('|[0-9]+|',$texto,$numeros);
/* Tienes todas las cadenas numéricas en el array $numeros[0]
$numeros[0][0] = 1234234
$numeros[0][1] = 234
$numeros[0][2] = 46001*/ 
  #4 (permalink)  
Antiguo 14/11/2007, 12:42
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 16 años, 11 meses
Puntos: 6
Re: Separar números en string

Con lo anterior obtendras algo asi:
Código:
Array ( [0] => 1234234 [1] => 234 [2] => Valencia / 46001 )
Entinces si te fijas la posicon 0 de tu arreglo tendra 1234234, la posicion 1 tendra 234 y la posicion 2 tendra Valencia / 46001;

Ahora has lo siguiente:

Código:
       $separado2=explode("/", $separado[2]);
        print_r($separado2);
si te fijas en $sepado2[0] tendras "Valencia" y en $separado2[1] tenadras "4001"

y pues ahora ya puedes guardarlo en variables:

$var1=$separado[0];
$var2=$separado[1];
$var3=$separado2[1];

Ok ojala te sirva de algo.

salu2
__________________
"Eres grande por que caminas entre gigantes"
  #5 (permalink)  
Antiguo 14/11/2007, 14:24
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 20 años, 11 meses
Puntos: 60
Re: Separar números en string

Cita:
Iniciado por Lanselot Ver Mensaje
Con expresiones regulares

Código PHP:
$texto '1234234-234 - Valencia / 46001';
preg_match_all('|[0-9]+|',$texto,$numeros);
/* Tienes todas las cadenas numéricas en el array $numeros[0]
$numeros[0][0] = 1234234
$numeros[0][1] = 234
$numeros[0][2] = 46001*/ 
Creo que esta manera es excelente..
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #6 (permalink)  
Antiguo 15/11/2007, 18:13
 
Fecha de Ingreso: octubre-2007
Mensajes: 30
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Separar números en string

Muchísimas gracias.
Estaba intentado hacerlo así

Código PHP:
$length=strlen($string);
for (
$i=0;$i<$length;$i++){
    if (
is_numeric($string)==TRUE)
        
$string[$i]=$string.$string[$i];    

de pena...

pero me faltaba separar los bloques y forma de Lanselot es infinitamente más elegante :)

Gracias a todos otra vez
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 04:45.