Reputation:
The following 2 array's are not merging right at [2015] like they're supposed to. instead it creates [2016] like in the last example.
code i'm using :
$merge = array_merge_recursive($array, $current);
first array: ($current)
Array
(
[Particulier] => Array
(
[Weekend] => Array
(
[2015] => Array
(
[06] => Array
(
[0] => Array
(
[id] => 111
[startDate] => 12-06-2015
[endDate] => 15-06-2015
[price] => 920
)
)
)
)
)
)
second array: ($array)
Array
(
[Particulier] => Array
(
[Weekend] => Array
(
[2015] => Array
(
[05] => Array
(
[0] => Array
(
[id] => 90
[startDate] => 01-05-2015
[endDate] => 04-05-2015
[price] => 920
)
[1] => Array
(
[id] => 91
[startDate] => 08-05-2015
[endDate] => 11-05-2015
[price] => 920
)
[2] => Array
(
[id] => 92
[startDate] => 15-05-2015
[endDate] => 18-05-2015
[price] => 920
)
)
[06] => Array
(
[0] => Array
(
[id] => 112
[startDate] => 19-06-2015
[endDate] => 22-06-2015
[price] => 920
)
)
)
)
[Midweek] => Array
(
[2015] => Array
(
[05] => Array
(
[0] => Array
(
[id] => 94
[startDate] => 11-05-2015
[endDate] => 15-05-2015
[price] => 1225
)
[1] => Array
(
[id] => 95
[startDate] => 18-05-2015
[endDate] => 22-05-2015
[price] => 1225
)
)
[06] => Array
(
[0] => Array
(
[id] => 118
[startDate] => 15-06-2015
[endDate] => 19-06-2015
[price] => 1225
)
)
)
)
)
[Clienten en patienten] => Array
(
[Weekend] => Array
(
[2015] => Array
(
[05] => Array
(
[0] => Array
(
[id] => 105
[startDate] => 01-05-2015
[endDate] => 04-05-2015
[price] => 645
)
)
)
)
)
)
current result: ($merge)
Array
(
[Particulier] => Array
(
[Weekend] => Array
(
[2015] => Array
(
[05] => Array
(
[0] => Array
(
[id] => 90
[startDate] => 01-05-2015
[endDate] => 04-05-2015
[price] => 920
)
[1] => Array
(
[id] => 91
[startDate] => 08-05-2015
[endDate] => 11-05-2015
[price] => 920
)
[2] => Array
(
[id] => 92
[startDate] => 15-05-2015
[endDate] => 18-05-2015
[price] => 920
)
)
[06] => Array
(
[0] => Array
(
[id] => 112
[startDate] => 19-06-2015
[endDate] => 22-06-2015
[price] => 920
)
)
)
[2016] => Array
(
[06] => Array
(
[0] => Array
(
[id] => 111
[startDate] => 12-06-2015
[endDate] => 15-06-2015
[price] => 920
)
)
)
)
EDIT: expected result
Array
(
[Particulier] => Array
(
[Weekend] => Array
(
[2015] => Array
(
[05] => Array
(
[0] => Array
(
[id] => 90
[startDate] => 01-05-2015
[endDate] => 04-05-2015
[price] => 920
)
[1] => Array
(
[id] => 91
[startDate] => 08-05-2015
[endDate] => 11-05-2015
[price] => 920
)
[2] => Array
(
[id] => 92
[startDate] => 15-05-2015
[endDate] => 18-05-2015
[price] => 920
)
)
[06] => Array
(
[0] => Array
(
[id] => 112
[startDate] => 19-06-2015
[endDate] => 22-06-2015
[price] => 920
)
[1] => Array
(
[id] => 111
[startDate] => 12-06-2015
[endDate] => 15-06-2015
[price] => 920
)
)
)
)
If any other information is required, please ask! Thanks in advance!
Upvotes: 2
Views: 557
Reputation: 46
From what you describe you will have to work with an associated array (using a string index like "2015") and not a numeric index (like 2015).
I would also suggest using a unique key as the index for the events and to use the alternative function array_replace_recursive to prevent PHP from creating any nested arrays (see http://php.net/manual/en/function.array-replace-recursive.php)
Upvotes: 3