Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中合并数组时出错_Php_Arrays - Fatal编程技术网

在PHP中合并数组时出错

在PHP中合并数组时出错,php,arrays,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

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

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);
}
有什么建议吗


谢谢

您可以通过将数组添加到一起或使用将数组合并到新的数组中来合并条目


您没有使用自定义代码来解决此问题的任何原因?

我不确定我是否正确阅读了此问题,我对您所做的有点困惑,但这可能会有所帮助:

据我所知,您希望在$arr[k]的值后面附加$v。所以你想把这些东西结合在一起


因此,您希望在注释下方的行中使用。=而不是=

请不要发布你的代码截图-只需粘贴在代码本身,并使用编辑器中的代码示例{}图标对其进行格式化。共享代码,而不是截图。我尝试了数组{u合并}递归,并在视觉上完成了工作。然而,我迭代了结果,发现在附加了元素数组的数组中,它不包含CLASSNAME属性,迭代也不一致。有什么想法吗?我当然更喜欢使用array\u merge\u recursive。