<?php
$array1 = [
['subscribers' => 2, 'dt_date' => '2014-02-27'],
['subscribers' => 2, 'dt_date' => '2014-02-25'],
['subscribers' => 1, 'dt_date' => '2014-02-07']
];
$array2 = [
['unsubscribers' => 1, 'dt_date' => '2014-02-27'],
['unsubscribers' => 1, 'dt_date' => '2014-02-01']
];
$default = array_fill_keys(['subscribers', 'unsubscribers'], 0);
var_export(
array_values(
array_reduce(
array_merge($array1, $array2),
function($result, $row) use($default) {
$result[$row['dt_date']] = array_merge($result[$row['dt_date']] ?? $default, $row);
return $result;
}
)
)
);
- Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.29, 8.2.0 - 8.2.20, 8.3.0 - 8.3.8
- array (
0 =>
array (
'subscribers' => 2,
'unsubscribers' => 1,
'dt_date' => '2014-02-27',
),
1 =>
array (
'subscribers' => 2,
'unsubscribers' => 0,
'dt_date' => '2014-02-25',
),
2 =>
array (
'subscribers' => 1,
'unsubscribers' => 0,
'dt_date' => '2014-02-07',
),
3 =>
array (
'subscribers' => 0,
'unsubscribers' => 1,
'dt_date' => '2014-02-01',
),
)
preferences:
118.89 ms | 403 KiB | 126 Q