Foros del Web » Programando para Internet » PHP »

Sumatorio de una cadena numerica

Estas en el tema de Sumatorio de una cadena numerica en el foro de PHP en Foros del Web. Mi pregunta es , dada una cadena numerica 123456 como puedo con php sumar numero con numero y dar un numero unico como resultado en ...
  #1 (permalink)  
Antiguo 23/09/2006, 23:44
(Desactivado)
 
Fecha de Ingreso: septiembre-2006
Mensajes: 216
Antigüedad: 17 años, 7 meses
Puntos: 0
Exclamación Sumatorio de una cadena numerica

Mi pregunta es , dada una cadena numerica 123456 como puedo con php sumar numero con numero y dar un numero unico como resultado en este caso seria : 21 , saludos a ver que se les ocurre , saludos
  #2 (permalink)  
Antiguo 24/09/2006, 00:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Así a la rápida se me ocurre:

Código PHP:
<?
$cadena
="123456":
// Convertir la cadena en un array.
$valores_en_array=str_split($cadena);
// Sumar sus elementos
$sumatorio=array_sum($valores_en_array);
// Me deshago del array que creé temporal (por si tienes muchos más procesos subsiguientes que hacer .. es bueno hacerlo.
unset($valores_en_array);

// Y trabajas tus datos obtenidos ...
echo "Cadena: ".$cadena." = ".$sumatorio" sumatorio";
?>
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 24/09/2006, 03:26
(Desactivado)
 
Fecha de Ingreso: septiembre-2006
Mensajes: 216
Antigüedad: 17 años, 7 meses
Puntos: 0
Ok muchas gracias se ve bien lo probare y te comento , muchas gracias por tu atencion y saludos
  #4 (permalink)  
Antiguo 24/09/2006, 09:02
(Desactivado)
 
Fecha de Ingreso: septiembre-2006
Mensajes: 216
Antigüedad: 17 años, 7 meses
Puntos: 0
La función str_split es para php5 no me la admite en el hosting puesto que usa php4 a ver si me das alguna idea sin usar esta funcionalidad saludos nuevamente y gracias , :)
  #5 (permalink)  
Antiguo 24/09/2006, 09:15
 
Fecha de Ingreso: agosto-2006
Mensajes: 121
Antigüedad: 17 años, 8 meses
Puntos: 0
Puedes probar a la antigua usanza:

Código PHP:
for ($i=0;$i<strlen($cadena);$i++)
    
$Suma+=$cadena[$i]; 
  #6 (permalink)  
Antiguo 24/09/2006, 11:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por gsmmixer Ver Mensaje
La función str_split es para php5 no me la admite en el hosting puesto que usa php4 a ver si me das alguna idea sin usar esta funcionalidad saludos nuevamente y gracias , :)
No me había percatado (uso PHP 5 y tampoco te preguté que versión de PHP usabas).

Toma la opción de GikaJavi

Código PHP:
for ($i=0;$i<strlen($cadena);$i++){ 
    
$Suma += $cadena{$i};

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 24/09/2006, 13:33
Avatar de Calisco  
Fecha de Ingreso: marzo-2004
Ubicación: Neuquen
Mensajes: 732
Antigüedad: 20 años, 1 mes
Puntos: 4
El bucle for requiere menos recursos que el script anterior ?
__________________
| Cabeza De Raton |
  #8 (permalink)  
Antiguo 24/09/2006, 16:09
(Desactivado)
 
Fecha de Ingreso: septiembre-2006
Mensajes: 216
Antigüedad: 17 años, 7 meses
Puntos: 0
Va perfecto el ejemplo de GikaJavi , enga saludos a todos y gracias por vuestro interes y ayuda
  #9 (permalink)  
Antiguo 24/09/2006, 19:54
(Desactivado)
 
Fecha de Ingreso: septiembre-2006
Mensajes: 216
Antigüedad: 17 años, 7 meses
Puntos: 0
Pues resulta que ha surgido un problema cone sa expresion , resulta que la expresión de bucle for va bien pero no respeta el caso de numero enteros como por ejemplo 100 o 50 o 10 interpretándolso como si fuese un numero 1 etc , es decir dada una cadena de valores $cadena= 10 2 2 2 2 , el resultado alsumar deberia de ser 18 , pero al utilizar al expresion de bucle da en realidad 8 , entonces no se como hacer , no habia caido en esto , como podría el bucle diferenciar cuando un numero es de una forma u otra para sumarlos luego entre si , saludos a tod y nuevamente gracias pro el apoyo
  #10 (permalink)  
Antiguo 30/09/2006, 13:12
 
Fecha de Ingreso: agosto-2006
Mensajes: 121
Antigüedad: 17 años, 8 meses
Puntos: 0
En el primer post asumía que los enteros a sumar eran del 0 al 9, puesto que los mostrabas de la forma "123456790", luego no había manera de determinar cuándo empezaba y acababa cada uno. Si estás usando el espacio en blanco como separador entonces tienes que tenerlo en cuenta para sumar. Te funcionará este código:

Código PHP:
$strV=explode(' ',$cadena);
for (
$i=0;$i<count($strV);$i++)
    
$suma+=$strV[$i]; 
  #11 (permalink)  
Antiguo 30/09/2006, 15:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Calisco Ver Mensaje
El bucle for requiere menos recursos que el script anterior ?
Si hay alguna diferencia será casi inperceptible en el uso cotidiano.

Lo que si que es cierto que toda función que PHP pueda tener implementada vs a su equivalente en código "suelto" PHP será más rápida la opción "función nativa" pues está función aunque use la misma técnica está "compilada" vs a nuestra solución en código PHP "simple" que se tendrá que interpretar todo.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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:21.