【发布时间】:2017-07-19 04:17:12
【问题描述】:
我正在使用这个函数递归合并两个数组:
function array_merge_recursive_distinct(array &$array1, array &$array2) {
$merged = $array1;
foreach($array2 as $key => &$value) {
if(is_array($value) && isset($merged[$key]) && is_array($merged[$key])) {
$merged[$key] = array_merge_recursive_distinct($merged[$key], $value);
} else {
$merged[$key] = $value;
}
}
return $merged;
}
为了使用此功能,我正在执行以下步骤:
- 声明一个空数组 $outArray = array();
- 做一个while循环来收集我需要的信息
- 在 while 循环期间,我调用 array_merge_recursive_distinct 函数以递归方式填充空数组
然而,最终的数组只包含它在最后一个 while 循环中收集到的最后信息。我试图找到一个解决方案,但直到现在我还没有成功。我究竟做错了什么? 递归函数在 while 循环期间获取所有信息(我已经在递归函数中打印了输入数组),但它似乎一遍又一遍地覆盖合并的数组。
谢谢
【问题讨论】:
标签: php arrays recursion merge