Группируйте строки двумерного массива по столбцу и суммируйте другие столбцы внутри каждой группы.Php

Кемеровские программисты php общаются здесь
Anonymous
Группируйте строки двумерного массива по столбцу и суммируйте другие столбцы внутри каждой группы.

Сообщение Anonymous »

У меня есть текущий массив PHP

Код: Выделить всё

$newData = array (size=3)
0 =>
array (size=6)
'company_name' => string 'CO 1' (length=32)
'year_and_filing_date' => string '2019' (length=4)
'total_revenue' => string '200' (length=3)
'net_income' => string '300' (length=3)
'net_cash_ending_balance' => string '150' (length=3)
'long-term_debt' => string '210' (length=3)
1 =>
array (size=6)
'company_name' => string 'CO 1' (length=32)
'year_and_filing_date' => string '2020' (length=4)
'total_revenue' => string '200' (length=3)
'net_income' => string '300' (length=3)
'net_cash_ending_balance' => string '150' (length=3)
'long-term_debt' => string '210' (length=3)
2 =>
array (size=6)
'company_name' => string 'CO 1' (length=32)
'year_and_filing_date' => string '2020' (length=4)
'total_revenue' => string '100' (length=3)
'net_income' => string '200' (length=3)
'net_cash_ending_balance' => string '50' (length=2)
'long-term_debt' => string '110' (length=3)
Я хочу объединить все массивы с одинаковыми значениями «year_and_filling_date» и суммировать все
свойства «total_revenue», «net_income» , 'net_cash_ending_balance' и 'long-term_debt'
Я не знаю, с чего начать,
Я подумываю зациклиться на каждом массиве, чтобы получить уникальную
'year_and_filing_date'

Код: Выделить всё

$unique_years = array_unique(
array_map(function($elem){
return $elem['year_and_filing_date'];
},
$newData)
);
результат: ['2019','2020'];
А затем создайте еще один цикл для фильтрации $newData с результатом ['2019','2020']
Я ожидаю получить два разных массива:
Один возвращает 1 результат, а другой возвращает 2 результата.
Но как суммировать только выбранные поля?

Подробнее здесь: https://stackoverflow.com/questions/652 ... each-group

Вернуться в «Php»