Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Utknąłem z tablicą pomocy
Forum PHP.pl > Forum > PHP
ZenekN
Witam mam tablice w takiej postaci

  1. array (size=2)
  2. 'id1' =>
  3. array (size=7)
  4. 0 => int 69997
  5. 1 => int 69997
  6. 2 => int 72047
  7. 3 => int 72784
  8. 4 => int 72699
  9. 5 => int 72699
  10. 6 => int 72699
  11. 'ilosc' =>
  12. array (size=7)
  13. 0 => int 0
  14. 1 => int 0
  15. 2 => int 0
  16. 3 => int 0
  17. 4 => int 4
  18. 5 => int 4
  19. 6 => int 1


potrzebuje aby output wyglądał w ten sposób że dla tych samych id1 sumowała sie łączna z tablicy ilość

  1.  
  2.  
  3. [php]
  4. array (size=2)
  5. 'id1' =>
  6. array (size=7)
  7. 0 => int 69997
  8. 1 => int 72047
  9. 2 => int 72784
  10. 3 => int 72699
  11.  
  12. 'ilosc' =>
  13. array (size=7)
  14. 0 => int 0
  15. 1 => int 0
  16. 2 => int 0
  17. 3 => int 9
  18.  

albo w ten sposób
  1.  
  2.  
  3. 69997 => 0
  4. 72047 => 0
  5. 72784 => 0
  6. 72699 => 9
  7.  
  8.  
  9.  


zrobiłem

  1. foreach($zzs as $zzk => $zzv) {
  2.  
  3. $s[] = array($zzv['id1'] => $zzv['ilosc']);
  4. }
  5. foreach($s as $t => $z) {
  6. foreach($z as $l => $p) {
  7. $xt[$l] += $p;
  8. }
  9. }
nospor
Nazewnictwo zmiennych powala. Nastepnym razem uzyj laciny, bedzie jeszzcze trudniej sie polapac wink.gif

No ale twoj kod nie robi tego co chciales pierwotnie

edit: dobra, robi. Nie widzialem wczesniej tego ALBO wink.gif
LowiczakPL

  1. $nowaTablica = array_count_values($liczonaTablica);
nospor
@ LowiczakPL I jak to sie ma do problemu procz faktu ze nic a nic? wink.gif
Malinaa
Można tak:

  1. <?php
  2.  
  3. $arrayData = array(
  4. 'id' => array(
  5. 0 => 69997,
  6. 1 => 69997,
  7. 2 => 72047,
  8. 3 => 72784,
  9. 4 => 72699,
  10. 5 => 72699,
  11. 6 => 72699
  12. ),
  13. 'quantity' => array(
  14. 0 => 0,
  15. 1 => 0,
  16. 2 => 0,
  17. 3 => 0,
  18. 4 => 4,
  19. 5 => 4,
  20. 6 => 1
  21. )
  22. );
  23.  
  24. $value = 0;
  25. $arrayId = array();
  26. $arrayQty = array();
  27. $arrayCount = array();
  28. $arrayResult = array();
  29.  
  30. foreach ($arrayData as $value) {
  31. foreach ($value as $k => $v) {
  32. if (!in_array($v[$k], $value)) {
  33. $arrayId[] = $v;
  34. }
  35. else {
  36. $arrayQty[] = $v;
  37. }
  38. }
  39. }
  40.  
  41. foreach ($arrayId as $key => $value) {
  42. if (array_key_exists($value, $arrayCount)) {
  43. $arrayResult[$value] = $arrayCount[$value] + $arrayQty[$key];
  44. }
  45.  
  46. $arrayCount[$value] = $arrayQty[$key];
  47. $arrayCount[$value] = $arrayCount[$value] + $arrayQty[$key];
  48.  
  49. if (!isset($arrayResult[$value])) $arrayResult[$value] = $arrayCount[$value] + $arrayQty[$key];
  50. }
  51.  
  52. echo '<pre>';
  53. print_r($arrayData);
  54. echo '</pre>';
  55. echo '<hr>';
  56. echo '<pre>';
  57. print_r($arrayResult);
  58. echo '</pre>';
  59.  
  60. ?>


Z podanej tablicy tworzę dwie, następnie zliczam ilość dla wartości id.
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.