5

可能重复:
PHP:合并 2 个多维数组

我有这些数组,我想将它们合并到一个数组中。

$arrayAAA[0]['name'] = "stackoverflow";
$arrayBBB[0]['color'] = "white";
$arrayCCC[0]['media'] = "web";

我想像这样合并这些。

$newArray[0]['name'] //"stackoverflow"
$newArray[0]['color'] //"white"
$newArray[0]['media'] //"web"

如果有人知道如何做到这一点,请给我帮助。我以为我可以使用 合并它们array_merge(),但是这个功能在我的情况下不起作用。

提前非常感谢!

4

4 回答 4

6

我不知道您在寻找解决方案上浪费了多少时间,而您本可以编写一份手册。

foreach(array($arrayAAA, $arrayBBB, $arrayCCC) as $v){
    foreach($v as $iv){
        $result[key($iv)] = $iv[key($iv)];
    }
}

键盘

于 2012-12-19T01:19:02.663 回答
4

我想你想用array_merge(),不是merge_array()

于 2012-12-19T00:56:30.280 回答
3

那么,这也不行吗?

$x = array();
$x[0] = array_merge($arrayA[0], $arrayB[0], ...);

还有array_merge_recursive函数。但我很确定它只会附加每个子数组。

于 2012-12-19T01:15:32.137 回答
2

对于更复杂的数组,这应该可以工作,但似乎应该有更简单的方法。

$arrayAAA[0]['name'] = "stackoverflow";
$arrayBBB[0]['color'] = "white";
$arrayCCC[0]['media'] = "web";

function merge_arrays(){
    $aArgs = func_get_args();

    $aReturn = array();
    if($aArgs != array()){
        foreach($aArgs as $aArr){
            foreach($aArr as $mKey => $aSub){
                if(!isset($aReturn[$mKey])){
                    $aReturn[$mKey] = array();
                }

                foreach($aSub as $mSubKey => $mVal){
                    $aReturn[$mKey][$mSubKey] = $mVal;
                }
            }
        }   
    }

    return $aReturn;
}

$newArray = merge_arrays($arrayAAA, $arrayBBB, $arrayCCC);
于 2012-12-19T01:23:29.960 回答