Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] encontrar diferencia en cadena

Estas en el tema de encontrar diferencia en cadena en el foro de PHP en Foros del Web. Estimados, Como puedo saber la posición cuando en una cadena el digito deja de ser cero. si tengo este tipo de cadenas: 0000000000Marcos Fuentes Ayala ...
  #1 (permalink)  
Antiguo 15/06/2015, 08:19
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 13 años, 8 meses
Puntos: 9
encontrar diferencia en cadena

Estimados,


Como puedo saber la posición cuando en una cadena el digito deja de ser cero.

si tengo este tipo de cadenas:

0000000000Marcos Fuentes Ayala
00000000000973507487

como puedo saber la posicion de M y de 9 en la cadena.


Saludos.
  #2 (permalink)  
Antiguo 15/06/2015, 08:37
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: encontrar diferencia en cadena

Bueno, podrías usar el manual de referncia del lenguaje, por ejemplo...

Ver strrpos()
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 15/06/2015, 09:38
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: encontrar diferencia en cadena

El problema que tengo es que hago esto como prueba y me devuelve la posicion 14 pero yo necesito que me diga la posicion 9 que sea el cero antes del 1

$cad = "000000000010590";
$res = strrpos($cad, "0");
echo $res;
  #4 (permalink)  
Antiguo 15/06/2015, 09:41
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: encontrar diferencia en cadena

igual es facil solucionarlo solo queria saber si se puede hacer con funcion nativa de php


de momento voy a recorrer la cadena y si es distinto de cero tomo la posicion y saco todo lo que esta a la derecha
  #5 (permalink)  
Antiguo 15/06/2015, 09:47
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: encontrar diferencia en cadena

http://php.net/manual/es/function.preg-match.php
Mira flags.
  #6 (permalink)  
Antiguo 15/06/2015, 10:21
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: encontrar diferencia en cadena

aqui tengo mi solucion es que intente hacerlo con expresiones regulares y no logre hacer que saque la informacion de la derecha cuando encuentre un valor distinto de cero, bueno lo que hice fue:

Código PHP:
Ver original
  1. <?php
  2.  
  3. function eliminarCerosIzq($cadena){
  4.     $cad = str_split($cadena);
  5.    
  6.     foreach($cad as $ind=>$dato){      
  7.         if($dato != "0"){          
  8.             $respuesta = substr($cadena, $ind);
  9.             return $respuesta;
  10.         }  
  11.     }      
  12. }
  13.  
  14. $cad = "0000000B000A590";
  15. $resp = eliminarCerosIzq($cad);
  16.  
  17. echo $resp;
  18.  
  19. ?>
  #7 (permalink)  
Antiguo 15/06/2015, 10:38
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: encontrar diferencia en cadena

Lo que haces en tu último mensaje no es lo que pedías en tu primer mensaje. Y eso lo puedes hacer con ltrim.
http://php.net/manual/es/function.ltrim.php

Ahhh, el manual de PHP, ese gran desconocido.
  #8 (permalink)  
Antiguo 15/06/2015, 11:11
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: encontrar diferencia en cadena

ya probe con ltrim($cadena, "0"); y funciona.

gracias por todo

bye.

Etiquetas: cadena, diferencia, encontrar
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 20:35.