Foros del Web » Programando para Internet » PHP »

Problema al sumar

Estas en el tema de Problema al sumar en el foro de PHP en Foros del Web. Buenas que tal: Me ha surgido una duda que me tiene frito . Consiste en que en un archivo de texto, tengo por ejemplo, estos ...
  #1 (permalink)  
Antiguo 01/10/2003, 22:46
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 889
Antigüedad: 16 años
Puntos: 4
Problema al sumar

Buenas que tal:

Me ha surgido una duda que me tiene frito . Consiste en que en un archivo de texto, tengo por ejemplo, estos valores numéricos:
Valor1|50
Valor2|100
Valor3|500
Valor4|1000
Valor5|5000
etc....

Entonces si yo quisiera sumar esos valores, como conseguiría el valor numérico total: 6650¿? (el del ejemplo)

Lo detallo así:
Código PHP:
 $fichero "fichero.txt";
$abrir file($fichero);
$total count($abrir);
for(
$i=0$i $total$i++){
$abrir trim($abrir);
$suma explode("|",$abrir[$i]);
//el proceso de suma 

Probé varios métodos, y el último fue: $suma[1]++... pero..

¿Alguien me podria conciliar con mi conciencia?

¡Gracias!

Última edición por chivi; 01/10/2003 a las 22:48
  #2 (permalink)  
Antiguo 02/10/2003, 02:26
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Hombre, no se mi he perdido algo de la explicacion, pero creo que con:
Código PHP:
$fichero "fichero.txt";
$abrir file($fichero);
$total count($abrir);
$suma_total=0;  // inicializamos el resultado
for($i=0$i $total$i++){
$abrir trim($abrir);
$suma explode("|",$abrir[$i]);
//el proceso de suma 
$suma_total=$suma_total+$suma[1];
}
echo 
$suma_total
siempre y cuando el codigo de antes de la suma funcione bien (¿trim() en un array? ¿seguro que no querias hacerlo de $abrir[$i]?).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 02/10/2003, 13:41
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 889
Antigüedad: 16 años
Puntos: 4
mmm gracias por contestar. Es cierto lo del trim (el directo...)

Lo de la suma, ya probé ese método y nada . He estado tol día intentándolo pero no lo consigo. O estoy ciego, o hago algo mal, o se me pasó la rosca del PHP


Muchas gracias por el esfuerzo

PD: El código correcto sería:
Código PHP:
<?
$fichero 
"fichero.txt";
$abrir file($fichero);
$abrir trim($abrir);
$total count($abrir);
for(
$i=0$i $total$i++){
$suma explode("|",$abrir[$i]);
//el proceso de suma 
}
?>
Lo de "$abrir[$i]" no te entendí... Lo que hago con ello, es separar cada linea en trozos.. eso lo sabes de sobra

Última edición por chivi; 02/10/2003 a las 13:46
  #4 (permalink)  
Antiguo 02/10/2003, 14:06
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Yo eliminaria lo del trim(). Y luego me pondria a sacar echo (y print_r()) por todos lados para ver los valores que toman las variables. Para empezar $suma[1], que se supone que tiene el numero a sumar. Haz:
Código PHP:

<?

$fichero 
"fichero.txt";

$abrir file($fichero);

// no me fio de esto $abrir = trim($abrir);

$total count($abrir);

for(
$i=0$i $total$i++){

$suma explode("|",$abrir[$i]);

//el proceso de suma 

echo $suma[1].'<br>';

}
?>
Se supone que esto te mostraria todos los numeros. Si no es asi, es que el problema esta antes, no en la suma.

Y asi con cada variable que te pueda dar pistas de que lo que esta haciendo PHP es lo que piensas que deberia hacer.

Saludos.

PD: Me referia que quizas querias hacer el trim solo a la fila, es decir, un trim($abrir[$i]).
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 02/10/2003, 15:56
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 889
Antigüedad: 16 años
Puntos: 4
ya me fijé... es pa darme con un hacha.. TODO una comedura de coco por un puñetero trim

muchas gracias por la aportación y el tiempo

fichero.txt
uno|50
dos|20

contar.php
Código PHP:
<?
$fichero 
"fichero.txt";
$abrir file($fichero);
$total count($abrir);
$suma_total=0;
for(
$i=0$i $total$i++){
$suma explode("|",$abrir[$i]);
$suma_total=$suma_total+$suma[1];
}
echo 
$suma_total;
?>

¡Saludos!

Última edición por chivi; 02/10/2003 a las 15:58
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:36.