在PHP中合并数组时出错

时间:2011-10-07 12:14:50

标签: php arrays

我有嵌套数组,并希望在键匹配时将一个数组的内容追加到另一个数组中。这是我的功能,但不是附加它正在替换。

function MergeArrays($arr, $ins)
{
    if(is_array($arr))
    {
        if(is_array($ins)) 
            foreach($ins as $k=>$v)
            {
                if(isset($arr[$k])&&is_array($v)&&is_array($arr[$k]))
                {
                    $arr[$k] = MergeArrays($arr[$k], $v);
                }
                else 
                {
                    // This is the new loop :)
                    // while (isset($arr[$k]))
                        // $k++;
                    // HERE IS WHERE I WANT TO APPEND INSTEAD OF ADD
                    $arr[$k] = $v;
                }
            }
    }
    else if(!is_array($arr)&&(strlen($arr)==0||$arr==0))
    {
        $arr=$ins;
    }
    return($arr);
}

有什么建议吗?

由于

2 个答案:

答案 0 :(得分:0)

您可以通过将数组添加到一起来合并条目,或使用array_merge将数组合并为一个新数组。

您是否因为没有自定义代码而未使用array_merge_recursive来解决此问题?

答案 1 :(得分:0)

我不确定我是否正确地阅读了这个问题,我对你正在做的事情感到有些困惑,但这可能有所帮助:

据我所知,你想要附加值为$ v的$ arr [k]的值。因此,你想把这些东西连在一起。

因此,您希望在评论下方的行上使用。=而不是=。