Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]suma liczb z pliku tekstowego
canismajoris
post
Post #1





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 11.01.2012

Ostrzeżenie: (0%)
-----


Witam
jak w temacie

mam plik tekstowy

z danymi w kolumnach oddzielnych ";"

za pomoca foreach i explode wypluwam tą kolumnę w zmienną $var

ta kolumna zawiera liczby.
jak je ze sobą zsumować?

ma ktoś jakiś pomysł .
z góry b,. dziekuję za pomoc.
Go to the top of the page
+Quote Post
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Jeżeli plik wygląda tak:

Kod
1; 2; 3; 4; 5; 6
4; 5; 6; 7; 8; 9
... itd ...


To można zrobić tak:

  1. $linia; // tutaj mamy pierwszą linię z pliku
  2.  
  3. $suma = 0;
  4. $linie = explode(';',$linia);
  5. foreach($linie AS $l) $suma+= (int) $l;
  6.  
  7. echo $suma;
  8.  


questionmark.gif


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
canismajoris
post
Post #3





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 11.01.2012

Ostrzeżenie: (0%)
-----


plik txt wygląda tak

7;4;5
4;6;5
1;9;5
5;4;6

dla uproszczenia np. chciałbym zsumowac tylko ostatna kolumnę.

Go to the top of the page
+Quote Post
Sephirus
post
Post #4





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Przepraszam pokićkało mi się że chodzi o linie.... ;/

  1. $lines = file('sciezka/do/pliku.csv'); // pobieramy linie
  2.  
  3. $colCount = count(explode(';',$lines[0]));
  4. $colSums = array_fill(0, $colCount, 0);
  5.  
  6. foreach($lines AS $l)
  7. {
  8. $cols= explode(';',$l);
  9. for($i = 0; $i < $colCount; $i++)
  10. $colSums[$i] += $cols[$i];
  11. }
  12.  
  13. print_r($colSums);


Ten post edytował Sephirus 29.02.2012, 14:42:40


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
canismajoris
post
Post #5





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 11.01.2012

Ostrzeżenie: (0%)
-----


ogromnie dziękuję, dziala poprawnie.
pozdrawiam
Go to the top of the page
+Quote Post
--AS--
post
Post #6





Goście







zamiast
  1. $linie = explode(';',$linia);
  2. foreach($linie AS $l) $suma+= (int) $l;

proponuję
  1. $suma += array_sum(explode(';',$linia));

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 19:51