Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ PHP _ Sumowanie array

Napisany przez: john_doe 26.08.2019, 08:31:49

mam taką tablicę

  1. http://www.php.net/array:164 [▼
  2. "2019-06-27" => http://www.php.net/array:2 [▼
  3. 0 => http://www.php.net/array:6 [▼
  4. "date" => "2019-06-27"
  5. "day" => "26"
  6. "quantity" => 4998
  7. "water" => 879.648
  8. "feed" => 494802
  9. "weight" => 4548180
  10. ]
  11. 1 => http://www.php.net/array:6 [▼
  12. "date" => "2019-06-27"
  13. "day" => "6"
  14. "quantity" => 1000
  15. "water" => 43.0
  16. "feed" => 31000
  17. "weight" => 160000
  18. ]
  19. ]
  20. "2019-06-28" => http://www.php.net/array:2 [▶]
  21. "2019-06-29" => http://www.php.net/array:2 [▶]
  22. "2019-06-30" => http://www.php.net/array:1 [▶]
  23. "2019-07-01" => http://www.php.net/array:1 [▶]
  24. "2019-07-02" => http://www.php.net/array:1 [▶]
  25.  


potrzebuję zsumować to co przedstawiłem rozwinięte powyżej. Suma quantity, water, etc...
Tak aby po tej operacji każdy klucz ( w moim przypadku data ) miałą jedną tablicę.

Punkt w którym się zatrzymałem.
  1. foreach($mojaTablica as $key => $val)
  2. {
  3. if(http://www.php.net/count($val) > 1)
  4. {
  5. $tmp = http://www.php.net/array();
  6.  
  7. foreach($val as $k => $v)
  8. {
  9. // $arrKeys = array_keys($v);
  10. //
  11. }
  12. }
  13. }

Napisany przez: rad11 26.08.2019, 11:26:04

  1. $input = [
  2. '2019-06-27' => [
  3. [
  4. "date" => "2019-06-27",
  5. "day" => "26",
  6. "quantity" => 4998,
  7. "water" => 879.648,
  8. "feed" => 494802,
  9. "weight" => 4548180,
  10. ],
  11. [
  12. "date" => "2019-06-27",
  13. "day" => "6",
  14. "quantity" => 1000,
  15. "water" => 43.0,
  16. "feed" => 31000,
  17. "weight" => 160000,
  18. ]
  19. ],
  20. ];
  21.  
  22. $output = [];
  23.  
  24. foreach ($input as $date => $values) {
  25. foreach ($values as $value) {
  26. if (http://www.php.net/empty($output[$value['date']]['quantity'])) {
  27. $output[$value['date']]['quantity'] = 0.00;
  28. }
  29.  
  30. if (http://www.php.net/empty($output[$value['date']]['water'])) {
  31. $output[$value['date']]['water'] = 0.00;
  32. }
  33.  
  34. if (http://www.php.net/empty($output[$value['date']]['feed'])) {
  35. $output[$value['date']]['feed'] = 0;
  36. }
  37.  
  38. if (http://www.php.net/empty($output[$value['date']]['weight'])) {
  39. $output[$value['date']]['weight'] = 0;
  40. }
  41.  
  42. $output[$value['date']]['quantity'] += $value['quantity'];
  43. $output[$value['date']]['water'] += $value['water'];
  44. $output[$value['date']]['feed'] += $value['feed'];
  45. $output[$value['date']]['weight'] += $value['weight'];
  46. }
  47. }
  48.  
  49. http://www.php.net/var_dump($output);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)