doğru anladıysam şu kod işinizi görecektir;
$items = [
0 => ['price' => 100, 'tax' => 8],
1 => ['price' => 100, 'tax' => 18],
2 => ['price' => 100, 'tax' => 15],
3 => ['price' => 100, 'tax' => 18],
];
$vergiler = [];
foreach($items as $i)
$vergiler[$i['tax']][] = $i['price'];
$vergiler = array_map(function($v, $k){
return [
'vergiOrani' => $k,
'toplamTutar' => array_sum($v),
'toplamVergi' => array_reduce($v, function($prev, $item) use($k){
return $prev + ($item * $k / 100);
})
];
}, $vergiler, array_keys($vergiler));
print_r($vergiler);çıktısı şöyle olacaktır;
Array
(
[0] => Array
(
[vergiOrani] => 8
[toplamTutar] => 100
[toplamVergi] => 8
)
[1] => Array
(
[vergiOrani] => 18
[toplamTutar] => 200
[toplamVergi] => 36
)
[2] => Array
(
[vergiOrani] => 15
[toplamTutar] => 100
[toplamVergi] => 15
)
)
Allah razı olsun array'i stackoverflow yardımı sizin array tipine çevirdik işlemi tamamladık.