Задать вопрос

Как сложить значения массива по условию?

Здравствуйте, есть такой массив
"items": [
                [
                    "type": "first",
                    "typeAmount": 20,
                    "amount": 100,
                ],
                [
                    "type": "first",
                    "typeAmount": 40,
                    "amount": 10,
                ],
                [
                    "type": "second",
                    "typeAmount": 20,
                    "amount": 30,
                ]
]

Подскажите, как по условию, того что ключи type равны друг другу сложить ключи typeAmount и amount, чтоб в итоге получить такой массив
"items": [
                [
                    "type": "first",
                    "typeAmount": 60,
                    "amount": 110,
                ],
                [
                    "type": "second",
                    "typeAmount": 20,
                    "amount": 30,
                ]
]
  • Вопрос задан
  • 56 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F
$grouped = [];

foreach ($items as $n) {
  $grouped[$n['type']] ??= [
    'type' => $n['type'],
    'typeAmount' => 0,
    'amount' => 0,
  ];

  $grouped[$n['type']]['typeAmount'] += $n['typeAmount'];
  $grouped[$n['type']]['amount'] += $n['amount'];
}

$grouped = array_values($grouped);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽