<?php
$arr = [
[
"count_employee" => 2,
"name" => "Harry"
],
[
"count_employee" => 61,
"name" => "Jack"
],
[
"count_employee" => 11,
"name" => "John"
],
[
"count_warehouse" => 1,
"name" => "Harry"
],
[
"count_warehouse" => 77,
"name" => "John"
],
[
"count_warehouse" => 45,
"name" => "Jack"
]
];
$result = [];
foreach ($arr as $v) {
// Initialize the person
if (!isset($result[$v['name']])) {
$result[$v['name']] = ["name" => $v['name'], "count_employee" => 0, "count_warehouse" => 0];
}
// Add values
if (isset($v['count_employee']))
$result[$v['name']]['count_employee'] += $v['count_employee'];
if (isset($v['count_warehouse']))
$result[$v['name']]['count_warehouse'] += $v['count_warehouse'];
}
print_r($result);
- Output for 5.4.45, 7.1.25 - 7.1.28, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
- Array
(
[Harry] => Array
(
[name] => Harry
[count_employee] => 2
[count_warehouse] => 1
)
[Jack] => Array
(
[name] => Jack
[count_employee] => 61
[count_warehouse] => 45
)
[John] => Array
(
[name] => John
[count_employee] => 11
[count_warehouse] => 77
)
)
preferences:
103.58 ms | 404 KiB | 167 Q