<?php
$array1 = [
['date' => '1-Sep-2016', 'price1' => 98],
['date' => '1-Oct-2016', 'price1' => 77],
['date' => '1-Nov-2016', 'price1' => 87],
['date' => '1-Dec-2016', 'price1' => 88],
['date' => '1-Jan-2017', 'price1' => 91],
];
$array2 = [
['date' => '1-Feb-2016', 'price2' => 98],
['date' => '1-Mar-2016', 'price2' => 77],
['date' => '1-Apr-2016', 'price2' => 87],
['date' => '1-May-2016', 'price2' => 88],
['date' => '1-Jun-2016', 'price2' => 91],
['date' => '1-Jul-2016', 'price2' => 88],
['date' => '1-Aug-2016', 'price2' => 88],
['date' => '1-Sep-2016', 'price2' => 88],
['date' => '1-Oct-2016', 'price2' => 88]
];
$stamps = [];
$result = [];
foreach (array_merge($array1, $array2) as $row) {
$stamps[$row['date']] = strtotime($row['date']);
$result[$stamps[$row['date']]] = ($result[$stamps[$row['date']]] ?? []) + $row;
}
array_multisort($stamps, $result);
var_export($result);
- Output for 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.26, 8.4.1 - 8.4.13
- array (
0 =>
array (
'date' => '1-Feb-2016',
'price2' => 98,
),
1 =>
array (
'date' => '1-Mar-2016',
'price2' => 77,
),
2 =>
array (
'date' => '1-Apr-2016',
'price2' => 87,
),
3 =>
array (
'date' => '1-May-2016',
'price2' => 88,
),
4 =>
array (
'date' => '1-Jun-2016',
'price2' => 91,
),
5 =>
array (
'date' => '1-Jul-2016',
'price2' => 88,
),
6 =>
array (
'date' => '1-Aug-2016',
'price2' => 88,
),
7 =>
array (
'date' => '1-Sep-2016',
'price1' => 98,
'price2' => 88,
),
8 =>
array (
'date' => '1-Oct-2016',
'price1' => 77,
'price2' => 88,
),
9 =>
array (
'date' => '1-Nov-2016',
'price1' => 87,
),
10 =>
array (
'date' => '1-Dec-2016',
'price1' => 88,
),
11 =>
array (
'date' => '1-Jan-2017',
'price1' => 91,
),
)
preferences:
61.2 ms | 409 KiB | 5 Q