У меня есть такой массив
массив ( [0] => Массив ( [vendor_id] => 2 [vendor_total_order] => 80 ) [1] => Массив ( [vendor_id] => 2 [vendor_total_order] => 100 ) [2] => Массив ( [vendor_id] => 1 [vendor_total_order] => 150 ) [3] => Массив ( [vendor_id] => 3 [vendor_total_order] => 80 ) [4] => Массив ( [vendor_id] => 5 [vendor_total_order] => 150 ) [5] => Массив ( [vendor_id] => 1 [vendor_total_order] => 110 ) )
Я хочу упростить этот массив таким образом, чтобы, если «vendor_id» был одинаковым для двух значений, накопленное / суммированное значение должно быть присвоено «vendor_total_order» этому «vendor_id» (в основном мы удаляем значения, имеющие одинаковый vendor_id с общей стоимостью дубликатов).
Поэтому, когда я предоставляю вышеупомянутый массив в качестве входных данных, вывод должен выглядеть следующим образом
массив ( [0] => Массив ( [vendor_id] => 2 [vendor_total_order] => 180 ) [1] => Массив ( [vendor_id] => 1 [vendor_total_order] => 260 ) [2] => Массив ( [vendor_id] => 3 [vendor_total_order] => 80 ) [3] => Массив ( [vendor_id] => 5 [vendor_total_order] => 150 ) )
Как я могу это сделать ?
Вам просто нужно сгруппировать их, используя foreach. Пример:
$total = array();
foreach ($array as $key => $value) {
if(!isset($total[$value['vendor_id']])) {
$total[$value['vendor_id']] = array('vendor_id' => $value['vendor_id'], 'vendor_total_order' => 0);
}
$total[$value['vendor_id']]['vendor_total_order'] += $value['vendor_total_order'];
}
$total = array_values($total); // simple reindex
echo '<pre>';
print_r($total);
Лучше всего написать собственный скрипт, который выполняет следующие действия: