How can I group by adult price then get the sum of adult count per group.
Sample input:
[
[
'Reservation' => ['adult_price' => 2000, 'adult_count' => 2],
],
[
'Reservation' => ['adult_price' => 2000, 'adult_count' => 1],
],
[
'Reservation' => ['adult_price' => 300, 'adult_count' => 1],
],
]
Expected Result:
[
[
'Reservation' => ['adult_price' => 2000, 'adult_count' => 3],
],
[
'Reservation' => ['adult_price' => 300, 'adult_count' => 1],
],
]
Try this:
$grouped = [];
foreach ($array as $item) {
$item = $item["Reservation"];
$currentValue = isset($grouped[$item["adult_price"]]) ? $grouped[$item["adult_price"]] : 0;
$grouped[$item["adult_price"]] = $currentValue + $item["adult_count"];
}
$buildArray = [];
foreach ($grouped as $price => $count) {
$buildArray[] = ["Reservation" => ["adult_price" => $price, "adult_count" => $count]];
}
print_r($buildArray);