Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Determinar la posición que ocupa un número dentro de una cadena de caracteres

Estas en el tema de Determinar la posición que ocupa un número dentro de una cadena de caracteres en el foro de PHP en Foros del Web. Buenas cracks! Tengo una duda y es que no sé muy bien si se puede llevar a cabo o no. Tengo una base de datos ...
  #1 (permalink)  
Antiguo 17/03/2013, 11:07
 
Fecha de Ingreso: agosto-2009
Mensajes: 216
Antigüedad: 15 años, 3 meses
Puntos: 3
Determinar la posición que ocupa un número dentro de una cadena de caracteres

Buenas cracks!

Tengo una duda y es que no sé muy bien si se puede llevar a cabo o no. Tengo una base de datos con un campo A que almacena una cadena de caracteres variable. La cadena puede contener letras, números o una mezcla de ambas. Lo que quiero saber es si es posible determinar si un caracter es un número o no.

Por ejemplo:

Supongamos que tengo la cadena: Piso123

Querría saber si es posible determinar de alguna manera cuando se encuentre con un número. En este caso, que me indique que el 5º caracter no es una letra sino un número.

Muchas gracias por anticipado.

Un saludo.
  #2 (permalink)  
Antiguo 17/03/2013, 11:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Determinar la posición que ocupa un número dentro de una cadena de caracte

Claro que se puede, revisa en el manual por funciones para tratar con cadenas de texto, el resto es puro ingenio tuyo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 17/03/2013, 11:22
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 17 años, 1 mes
Puntos: 80
Respuesta: Determinar la posición que ocupa un número dentro de una cadena de caracte

Hola como estas,
aquí te dejo un ejemplo que puedes ampliar.
PregMatch
Este solo encuentra la primera vez que aparece una cadena de números.

Código PHP:
Ver original
  1. $cadena = 'piso12345';
  2.  
  3. preg_match('/[0-9]+/', $cadena, $matches,  PREG_OFFSET_CAPTURE );
  4.  
  5. echo 'Primer numero encontrado: ' . $matches[0][0];
  6. echo '<br>En la Posicion: ' . ($matches[0][1] +1);

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #4 (permalink)  
Antiguo 17/03/2013, 11:27
 
Fecha de Ingreso: septiembre-2011
Mensajes: 219
Antigüedad: 13 años, 1 mes
Puntos: 31
Respuesta: Determinar la posición que ocupa un número dentro de una cadena de caracte

Aca te dejo una función que te guarda el valor y la posición

Código PHP:
Ver original
  1. <?php
  2.  
  3. /**
  4.  *
  5.  */
  6. function search_numbers($text){
  7.     preg_match_all('!\d+!', $text, $matches);
  8.     $result = array();
  9.     if(@$matches){
  10.         foreach($matches as $match){
  11.             foreach($match as $k => $value){
  12.                 $result[$k]['value'] = $value;
  13.                 $result[$k]['position'] = strpos($text, $value);
  14.             }
  15.         }
  16.     }
  17.     return $result;
  18. }
  19.  
  20. $text = 'Piso123Plaza456';
  21. $resultado =  search_numbers($text);
  22. echo "<pre>";
  23. print_r($resultado);
  24. ?>
  #5 (permalink)  
Antiguo 17/03/2013, 11:29
 
Fecha de Ingreso: agosto-2009
Mensajes: 216
Antigüedad: 15 años, 3 meses
Puntos: 3
Respuesta: Determinar la posición que ocupa un número dentro de una cadena de caracte

Gracias por vuestras respuestas, solucionaron mi problemilla.

Un saludo!
  #6 (permalink)  
Antiguo 17/03/2013, 11:50
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Determinar la posición que ocupa un número dentro de una cadena de caracte

Cita:
Iniciado por bienpiyao Ver Mensaje
Gracias por vuestras respuestas, solucionaron mi problemilla.
¿Y qué aprendiste de todo esto?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: cadena, caracteres, determinar, ocupa
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 09:00.