<?php
$line_items = [
['price' => 41.99, 'id' => 12, 'quantity' => 1],
['price' => 155.95, 'id' => 11, 'quantity' => 1],
['price' => 21, 'id' => 13, 'quantity' => 1]
];
$price_array = [
197.94,
21.00
];
var_export(
array_reduce(
$line_items,
function($result, $row) use ($price_array) {
$index = (int) array_key_last($result);
$index += array_sum(array_column($result[$index] ?? [], 'price')) == $price_array[$index];
$result[$index][] = $row;
return $result;
},
[]
)
);
preferences:
25.52 ms | 408 KiB | 5 Q