[英]Array_merge_recursive not merging correctly (php)
The following 2 array's are not merging right at [2015] like they're supposed to. 以下两个数组在[2015]时并没有像应该的那样正确合并。 instead it creates [2016] like in the last example. 而是像上一个示例一样创建[2016]。
code i'm using : 我正在使用的代码:
$merge = array_merge_recursive($array, $current); $ merge = array_merge_recursive($ array,$ current);
first array: ($current) 第一个数组:($ 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)
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! 提前致谢!
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). 根据您的描述,您将必须使用关联的数组(使用像“ 2015”这样的字符串索引),而不是数字索引(例如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 ) 我还建议使用唯一键作为事件的索引,并使用替代函数array_replace_recursive来防止PHP创建任何嵌套的数组(请参见http://php.net/manual/en/function.array-replace-recursive .php )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.