Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Contar numeros en una cadena

Estas en el tema de Contar numeros en una cadena en el foro de PHP en Foros del Web. Hola! Tengo un campo llamado ejes, lo que tiene es el numero de neumático por ejes, por ejemplo una motocicleta como tiene un neumático adelante ...
  #1 (permalink)  
Antiguo 23/07/2013, 16:00
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Contar numeros en una cadena

Hola!

Tengo un campo llamado ejes, lo que tiene es el numero de neumático por ejes, por ejemplo una motocicleta como tiene un neumático adelante y otro atrás tiene el valor "11", mientras que un automóvil tiene 2 neumáticos adelante y 2 atrás por lo que tiene valor "22", y un camión podría por ejemplo tener un "244" (2 neumáticos adelante y 2 ejes atrás con 4 neumáticos cada uno.

Esta forma me permite lograr algunas cosas como contar la cantidad de caracteres para saber cuantos ejes tiene y saber cuantos neumáticos delanteros tiene tomando solo el primer carácter.

la pregunta es como saber cuantos neumáticos tiene?

lo que yo hice fue algo así:

Código PHP:
$neum=0;
for(
$f=0;$f<$ejes;$f++) substr($neum,$f,1); 
Hay alguna otra forma de contar los dígitos/caracteres de un numero/cadena sin tener que recorrerlo con un for?

Se agradecen comentarios :)
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #2 (permalink)  
Antiguo 23/07/2013, 16:05
Avatar de herran1212  
Fecha de Ingreso: julio-2013
Ubicación: cali
Mensajes: 89
Antigüedad: 11 años, 4 meses
Puntos: 3
Respuesta: Contar numeros en una cadena

<?php
$cadena = "cadena";
$ejemplo = strlen($cadena);
echo "La longitud de la cadena es: $ejemplo.";
?>
asi muestra la cantidad de digitos
  #3 (permalink)  
Antiguo 23/07/2013, 16:14
Avatar de Reedyseth  
Fecha de Ingreso: enero-2009
Ubicación: Chihuahua, México
Mensajes: 419
Antigüedad: 15 años, 9 meses
Puntos: 36
Respuesta: Contar numeros en una cadena

Hola que tal mira, ando viendo tu problema, me parece interesante. Por lo pronto falta que pongas un poco mas de código, a simple vista supongo que tienes el valore de $ejes como una cadena, entonces hay que trabajar un poco eso en el for, a simple vista no puedes solo usar la variable en el for. Como comote digo, ando revisando de acuerdo a la información que das y en un rato te doy una idea.

Saludos.
__________________
Reedyseth
Te ayudo? No olvides dar un +
blog:http://behstant.com/blog
En el blog:Tutoriales de Desarrollo Web PHP, Javascript, BD y más.
  #4 (permalink)  
Antiguo 23/07/2013, 16:36
Avatar de Reedyseth  
Fecha de Ingreso: enero-2009
Ubicación: Chihuahua, México
Mensajes: 419
Antigüedad: 15 años, 9 meses
Puntos: 36
Respuesta: Contar numeros en una cadena

Cita:
la pregunta es como saber cuantos neumáticos tiene?
Ok mira, suponiendo que $ejes es una cadena y suponiendo que es un camión en la forma '244' Tu total es 10 llantas y lo obtienes así:

Código PHP:
$ejes '244';
$ejesArray str_split($ejes);
$totalLlantas 0;
for (
$f=0;$f<sizeof($ejesArray);$f++) {
    
$totalLlantas $totalLlantas $ejesArray[$f];
}
echo 
"Total de llantas: ".$totalLlantas
recuerda que con:
[php]
$ejemplo = strlen($cadena);
[php]

No obtienes el total de llantas sino el total de caracteres.

Prueba lo y me cuentas
__________________
Reedyseth
Te ayudo? No olvides dar un +
blog:http://behstant.com/blog
En el blog:Tutoriales de Desarrollo Web PHP, Javascript, BD y más.
  #5 (permalink)  
Antiguo 23/07/2013, 16:43
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Contar numeros en una cadena

Amigo @Reedyseth: no lei el primer post porque asumo tu ya debes haber resuelto el problema (te tengo en alta consideracion) pero te hago unas observaciones:

1- sizeof() no es un alias de count() que confunde un poco aun a quienes programamos en PHP (pero hemos usado C por ejemplo) pues en otros lenguajes significa espacio ocupado en bytes

2- Hay un operador (+=) que abrevia una operacion que haces:

Código PHP:
Ver original
  1. $totalLlantas = $totalLlantas + $ejesArray[$f];

Se resume a:

Código PHP:
Ver original
  1. $totalLlantas += $ejesArray[$f];
__________________
Salu2!
  #6 (permalink)  
Antiguo 23/07/2013, 16:49
Avatar de Reedyseth  
Fecha de Ingreso: enero-2009
Ubicación: Chihuahua, México
Mensajes: 419
Antigüedad: 15 años, 9 meses
Puntos: 36
Respuesta: Contar numeros en una cadena

Cita:
Iniciado por Italico76 Ver Mensaje
Amigo @Reedyseth: no lei el primer post porque asumo tu ya debes haber resuelto el problema (te tengo en alta consideracion) pero te hago unas observaciones:

1- sizeof() no es un alias de count() que confunde un poco aun a quienes programamos en PHP (pero hemos usado C por ejemplo) pues en otros lenguajes significa espacio ocupado en bytes

2- Hay un operador (+=) que abrevia una operacion que haces:

Código PHP:
Ver original
  1. $totalLlantas = $totalLlantas + $ejesArray[$f];

Se resume a:

Código PHP:
Ver original
  1. $totalLlantas += $ejesArray[$f];
Gracias @Italico76 por las Anotaciones, lo que pasa es que no quiero confundir al usuario. Hay shortcuts como el += que simplifican el código pero puede generar mas dudas de las que ya se tiene por eso lo pongo mas explícito.

Muy buena anotación del sizeof()
__________________
Reedyseth
Te ayudo? No olvides dar un +
blog:http://behstant.com/blog
En el blog:Tutoriales de Desarrollo Web PHP, Javascript, BD y más.

Última edición por Reedyseth; 23/07/2013 a las 16:56 Razón: wiiiii mensaje 400
  #7 (permalink)  
Antiguo 23/07/2013, 20:30
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 17 años, 1 mes
Puntos: 80
Respuesta: Contar numeros en una cadena

Código PHP:
Ver original
  1. $texto      = 224;
  2. echo array_sum(str_split($texto));

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
  #8 (permalink)  
Antiguo 24/07/2013, 06:35
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: Contar numeros en una cadena

WOW, tantas formas mejores de hacerlo, no conocia ese str_split() que ha mencionado Reedyseth y me ha llamado la atencion que Italico76 haya nombrado lo del sizeof() y count(), pero en el ejemplo de portalmana se haya usado array_sum(), por cierto este último ejemplo es increiblemente corto y me parece muy eficiente.

Gracias a todos! Tema solucionado :)
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D

Etiquetas: cadena, numeros
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 21:55.