Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyrzucenie z tablicy zduplikowanych indeksów i sumowanie innych
Forum PHP.pl > Forum > Przedszkole
cammb
Witam,
szukam i szukam i nie mogę sobie z tym poradzić.

Pętlą while stworzyłem sobie taką tablicę pod zmienną $results:

  1. (
  2. [0] => Array
  3. (
  4. [id] => 1
  5. [data] => 2013-09-05
  6. [Gabinet] => gabinet1
  7. [a] => 0
  8. [b] => 1
  9. [c] => 0
  10. )
  11.  
  12. [1] => Array
  13. (
  14. [id] => 2
  15. [data] => 2013-09-05
  16. [Gabinet] => gabinet2
  17. [a] => 0
  18. [b] => 0
  19. [c] => 19
  20. )
  21.  
  22. [2] => Array
  23. (
  24. [id] => 3
  25. [data] => 2013-09-04
  26. [Gabinet] => gabinet1
  27. [a] => 9
  28. [b] => 0
  29. [c] => 1
  30. )
  31.  
  32. [3] => Array
  33. (
  34. [id] => 4
  35. [data] => 2013-09-04
  36. [Gabinet] => gabinet2
  37. [a] => 0
  38. [b] => 2
  39. [c] => 3
  40. )
  41.  
  42. )


I teraz nie wiem jak się za to zabrać, aby powyższe tablice zamieniły się w to:

  1. (
  2. [0] => Array
  3. (
  4. [Gabinet] => gabinet1
  5. [a] => 9
  6. [b] => 1
  7. [c] => 1
  8. )
  9.  
  10. [1] => Array
  11. (
  12. [Gabinet] => gabinet2
  13. [a] => 0
  14. [b] => 2
  15. [c] => 22
  16. )
  17.  
  18. )


Czyli tam gdzie indeks [Gabinet] się powtórzył sumowało pozostałe indeksy i wypluwało wynik.
Proszę o jakąś podpowiedź.
Starmi
Utwórz sobie zmienną np. $end_array i jedź po każdym elemencie, kluczem w $end_array będzie nazwa gabinetu wink.gif na samym końcu jeśli ci te klucze przeszkadzają możesz usunąć
cammb
kurcze nie bardzo rozumiem (sorry), mógłbym prosić o info jakiej funkcji użyć ewentualnie ? nie jestem w php jeszcze na tyle biegły ...
Starmi
  1. <?php
  2. $result = array(); // Pierwsza tablica
  3. $end_result = array(); // wyniki po wypluciu zbędnych...
  4.  
  5. foreach($result as $r)
  6. {
  7. if(isset($end_result[$r['Gabinet']]))
  8. {
  9. $end_result[$r['Gabient']]['a'] += $r['a'];
  10. $end_result[$r['Gabient']]['b'] += $r['b'];
  11. $end_result[$r['Gabient']]['c'] += $r['c'];
  12. }
  13. else
  14. {
  15. $end_result[$r['Gabinet']] = $r;
  16. }
  17. }
  18.  
  19. echo '<pre>';
  20. print_r($end_result);
  21. echo '</pre>';


Powinno śmigać smile.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.