Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]suma wartości z czterech tablic
Forum PHP.pl > Forum > Przedszkole
jacusek
Witam.
Mam takie cztery tablice
array
0 => string '48' (length=2)
array
0 => string '50' (length=2)
array
0 => string '22' (length=2)
array
0 => string '120' (length=3)
Chciałbym, żeby połączyć je w jedną. Nie wiem jak to zrobić bo jest to var_dump z jednej zmiennej i nie bardzo mam pomysł jak się odwołać żeby skorzystać z array_merge();
Z góry dzięki za pomoc.
Raito
Pokaż cały kod i umieść w znacznikach php.
jacusek
tablicę otrzymuję z sqlowego pytania wykonywanego w pętli:
$ile_usg jest zmienne w zależności od zazanczenie z formularza innej strony w tym przypadku jest to 4.
  1. for($a=0;$a<$ile_usl;$a++){
  2. $sql2="select nazwa,kwota from cennik where id_kat=".$kat_tab[$a];
  3. $rez2= mysqli_query($mysqli, $sql2);
  4. while($tab2=mysqli_fetch_array($rez2, MYSQLI_ASSOC)){
  5. $nazwa_uslug=$tab2['nazwa'];
  6. $kwota=$tab2['kwota'];
  7. $wartosc=($ilosc_tab[$a]*$kwota);

Chodzi mi o to, zeby $wartosc mozna było zsumować. Kombinowałem już na lewo i prawo, ale coś nie ma już pomysłu jak to zrobić.
Pyton_000
$suma = 0;

// pętla...
$suma += $wartość;
jacusek
No właśnie problem w tym, że kompletnie nie mam pomysłu jak to zrobić. wstydnis.gif
próbowałem w ten sposób:
  1. $suma=0;
  2. for($c=0;$c<$ile_usl;$c++){
  3. $suma+= $wartosc;
  4.  
  5. }echo $suma;

ale pokazuje tylko 0000
robertpiaty
Nie bardzo kumam co masz na myśli. Zerknij na dokumentację http://php.net/manual/en/function.array-sum.php

Pętlą przejdziesz za pomocą
  1. foreach($tablica as $klucz=>$wartość){
  2.  
  3. }


jacusek
to też nie zadziałało
  1. $suma=0;
  2. foreach($war_tab as $klucz=>$wartosc){
  3. $suma+=$wartosc;
  4. }echo $suma;
sciana.gif
a array_sum próbowałem, ale to są 4 osobne tablice....
robertpiaty
Ale w zmiennej $war_tab masz te wszystkie tablice? Jeśli nie to taka pętla nie ma sensu. Sprawdź co masz wewnątrz pętli w zmiennej $wartość Jeśli to jest tablica to wystarczy zrobić w Twoim przypadku
  1. $suma += $wartosc[0];
Pyton_000
pokaż kurna cały kod a nie dałeś kawałek czegoś z du...
jacusek
działa, ale niestety tylko w pętli for. Poza pętlą nie działa, a niestety do tej zmiennej muszę mieć dostęp później.
robertpiaty
Pokaż co żeś wyrzeźbił bo inaczej nikt Ci nic nie pomoże.. i nie powie gdzie masz błąd.
com
zrób sobie tablice zamiast zmiennej albo wrzuć do jakiejś globalnej albo zrób zmienna globalną
jacusek
to jest plik generujący fakturę do PDFa na podstawie mpdf.
Całego nie pokazuje bo nie ma potrzeby, bo do pętli for wszytko działa bez zarzutu.
  1. for($a=0;$a<$ile_usl;$a++){
  2. $b=$a+1;
  3. $blok3="
  4. <tr style=\"background-color: lightgrey\"><td style=\"border-style: 1px; text-align: center\">$b.</td>";
  5. $mpdf->WriteHTML($blok3);
  6. $sql2="select nazwa,kwota from cennik where id_kat=".$kat_tab[$a];
  7. $rez2= mysqli_query($mysqli, $sql2);
  8. while($tab2=mysqli_fetch_array($rez2, MYSQLI_ASSOC)){
  9. $nazwa_uslug=$tab2['nazwa'];
  10. $kwota=$tab2['kwota'];
  11. $wartosc=($ilosc_tab[$a]*$kwota);
  12. $war_tab=explode(',',$wartosc);
  13. $suma=0;
  14. foreach($war_tab as $klucz=>$wartosc){
  15. $suma += $wartosc[0];
  16.  
  17. }
  18.  
  19. $blok4="<td style=\"text-align: left\">$nazwa_uslug</td><td style=\"text-align: center\">$ilosc_tab[$a]</td>
  20. <td style=\"text-align: right\">$kwota PLN</td><td style=\"text-align: right\">$suma PLN</td></tr>";
  21. $mpdf->WriteHTML($blok4);
  22. }
  23. }
  24. $blok7="<tr><td colspan=\"2\"></td><td td style=\"background-color: lightgrey\" colspan=\"2\">Razem<br/>(ogólem do zapłaty):</td>
  25. <td style=\"background-color: lightgrey; text-align: right\">$suma PLN</td>";
  26. $mpdf->WriteHTML($blok7);
  27. $blok5="<tr><td colspan=\"5\"></td><tr><td colspan=\"5\"><font size=\"2\">KOMENTARZ</font></td></tr>";
  28. $mpdf->WriteHTML($blok5);
  29. $blok6="</table>";
  30. $mpdf->WriteHTML($blok6);
  31.  
  32. $mpdf->WriteHTML($blok2);
  33. $mpdf->Output();

CSS jest pomieszany z htmlem, ale niestety mam małe doświadczenie, a mpdf jest bardzo karpyśny pod tym względem. wink.gif
robertpiaty
Wywal
  1. $suma=0;
przed pętlę for. Bo chyba pewnie chodzi Ci o sumę z całości.
com
  1. $wartosc=($ilosc_tab[$a]*$kwota);
  2. $war_tab=explode(',',$wartosc);
  3. $suma=0;
  4. foreach($war_tab as $klucz=>$wartosc){
  5. $suma += $wartosc[0];
  6.  
  7. }


co to ma na celu?

up gratuluje głupich pomysłów, jak już to daj je przed pętle for
Pyton_000
ehh

wywal:
  1. $suma=0;
  2. foreach($war_tab as $klucz=>$wartosc){
  3. $suma += $wartosc[0];
  4.  
  5. }

daj
$suma =0;
PRZED for(...

i po $wartosc...
$suma += $wartosc;


jacusek
@Pyton_000
Niech Ci ten w którego wierzysz, lub nie, wynagrodzi twoją pomoc i cierpliwość, w czym chcesz smile.gif.
Pomogło.
guitar.gif Wielkie dzięki.
@com
Pomysł pewnie głupi, ale to chyba lepsze niż w ogóle nie próbowanie i czekanie na rozwiązanie. I tak dziękuję za pomoc i zaangażowanie bez którego bym tego nie zrobił. Punktowanie głupich pomysłów też jest w cenie.
com
chodziło mi o te operacje:
  1. $wartosc=($ilosc_tab[$a]*$kwota);
  2. $war_tab=explode(',',$wartosc);


bo nwm co chciałeś tym uzyskać i dlaczego tak
jacusek
pomysł był taki, zanim zorientowałem się że to bez sensu, żeby utworzyć tablicę i później skorzystać z funkcji array_sum, dopóki nie zorientowałem się, że to 4 osobne tablice. wstydnis.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.