<?php
$existingtArr = [
"A" => [
"color" => 'red',
"user" => [
"Daniel" => ["01:18:08", "04:10:12"],
"Max" => ["01:04:00"],
"Serto" => ["02:00:02"],
]
],
"B" => [
"color" => 'blue',
"user" => [
"Franz" => ["08:40:52"],
"Hugo" => ["07:08:58"],
]
]
];
$newArr = [
"A" => [
"color" => 'red',
"user" => [
"Fabian" => ["06:03:00"], // + 1 user
"Max" => ["04:10:12"], // + 1 new time
"Serto" => ["02:00:02"],
]
],
"B" => [
"color" => 'blue',
"user" => [
"Franz" => ["08:40:52", "14:05:32", "20:34:15"], // an older one is available, + 2 new times
"Hugo" => ["04:10:12"], // + 1 time
]
],
"C" => [ // + new whole group
"color" => 'green',
"user" => [
"Maxi" => ["07:08:58", "04:10:12"],
]
]
];
foreach ($newArr as $letter => $set) {
if (!isset($existingtArr[$letter])) {
$existingtArr[$letter] = $set;
} else {
$existingtArr[$letter]['user'] = array_merge_recursive(
$existingtArr[$letter]['user'],
$set['user']
);
}
}
var_export($existingtArr);
- Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
- array (
'A' =>
array (
'color' => 'red',
'user' =>
array (
'Daniel' =>
array (
0 => '01:18:08',
1 => '04:10:12',
),
'Max' =>
array (
0 => '01:04:00',
1 => '04:10:12',
),
'Serto' =>
array (
0 => '02:00:02',
1 => '02:00:02',
),
'Fabian' =>
array (
0 => '06:03:00',
),
),
),
'B' =>
array (
'color' => 'blue',
'user' =>
array (
'Franz' =>
array (
0 => '08:40:52',
1 => '08:40:52',
2 => '14:05:32',
3 => '20:34:15',
),
'Hugo' =>
array (
0 => '07:08:58',
1 => '04:10:12',
),
),
),
'C' =>
array (
'color' => 'green',
'user' =>
array (
'Maxi' =>
array (
0 => '07:08:58',
1 => '04:10:12',
),
),
),
)
preferences:
123.64 ms | 404 KiB | 89 Q