как фильтровать данные в foreach - PullRequest
1 голос
/ 10 января 2020

здесь я хочу сложить по месяцам и годам, полученным из API, поэтому в 2019-12 он сложит весь объем полученных мной данных, который находится в 2019-1, формат даты - гггг-мм -дать и данные даты очень нерегулярно

0 => array:11 [
      "id" => 1
      "date" => array:5 [
        "original" => "2019-11-29"
        "day" => "Friday"
        "date" => 29
        "month" => 11
        "year" => 2019
      ]
      "amount" => 3754521
    ]
    1 => array:11 [
      "id" => 2
      "date" => array:5 [
        "original" => "2019-12-29"
        "day" => "Friday"
        "date" => 29
        "month" => 12
        "year" => 2019
      ]
      "amount" => 20000
    ]
    2 => array:11 [
      "id" => 3
      "date" => array:5 [
        "original" => "2019-11-29"
        "day" => "Friday"
        "date" => 29
        "month" => 11
        "year" => 2019
      ]
      "amount" => 500000
    ]
    3 => array:11 [
      "id" => 4
      "date" => array:5 [
        "original" => "2019-12-29"
        "day" => "Friday"
        "date" => 29
        "month" => 12
        "year" => 2019
      ]
      "amount" => 200000
    ]

1 Ответ

1 голос
/ 10 января 2020

Я предполагаю, что вы хотите найти сумму сумм за каждый месяц.

Вам нужно перебрать массив и найти суммы на основе года и месяца.

$data = // store your array here
$totals = [];
foreach($data as $element){
    $year_month = $element['date']['year'] . '-' .  $element['date']['month'];

$totals[$year_month] = isset($totals[$year_month]) ? $totals[$year_month] + $element['amount'] : $element['amount'];
}

Это выдаст вам массив с указанием года-месяца в качестве ключей и общей суммы в качестве соответствующих значений.

...