Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyrzucenie z tablicy zduplikowanych indeksów i sumowanie innych
cammb
post 5.09.2013, 18:55:52
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 5.11.2009

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


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ź.
Go to the top of the page
+Quote Post
Starmi
post 5.09.2013, 19:16:39
Post #2





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 22.12.2012

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


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ąć
Go to the top of the page
+Quote Post
cammb
post 5.09.2013, 19:39:06
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 5.11.2009

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


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 ...
Go to the top of the page
+Quote Post
Starmi
post 5.09.2013, 19:45:24
Post #4





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 22.12.2012

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


  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
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 Wersja Lo-Fi Aktualny czas: 12.06.2025 - 14:54