<?php
$array = [
['quantity' => 5, 'dd' => '01-Nov-2012'],
['quantity' => 10, 'dd' => '01-Nov-2012'],
['quantity' => 3, 'dd' => '02-Nov-2012'],
['quantity' => 4, 'dd' => '03-Nov-2012'],
['quantity' => 15, 'dd' => '03-Nov-2012'],
];
var_export(
array_reduce(
$array,
function($result, $row) {
static $ref = [];
if (!isset($ref[$row['dd']])) {
$ref[$row['dd']] = $row;
$result[] = &$ref[$row['dd']];
} else {
$ref[$row['dd']]['quantity'] += $row['quantity'];
}
return $result;
}
)
);
- Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
- array (
0 =>
array (
'quantity' => 15,
'dd' => '01-Nov-2012',
),
1 =>
array (
'quantity' => 3,
'dd' => '02-Nov-2012',
),
2 =>
array (
'quantity' => 19,
'dd' => '03-Nov-2012',
),
)
preferences:
60.86 ms | 402 KiB | 91 Q