如何组合两个数组?

时间:2009-08-16 21:33:57

标签: php arrays merge

它们简化如下,这对于这个问题已经足够了。此问题基于this answer

1

[a][b][]

2

[a][c]

其中两个数组都有一个共同的子数组[a]。

我想要这个

[a][c][b][]

我运行以下命令失败

array1[a] + array2[a]

6 个答案:

答案 0 :(得分:1)

$ array1 = array_merge($ array1,$ array2);

答案 1 :(得分:1)

foreach($array1 as $a => $c)
{
    $end_array[$c] = $array2[$a];
}

// For every [a]
foreach($array1 as $a => $c)
{
    // Get the [b]
    $b = $array2[$a];

    // Add it to [a][c]
    $end_array[$a][$c] = $b;

    // Making it $end_array[$a][$c][$b] = array(....);
}

答案 2 :(得分:1)

好的,我知道你在谈论什么。 (对于其他所有人,请参阅他发布的链接:http://dpaste.com/81464/

var $output = array();

foreach ($array1 as $index => $a1) {
    $output[$index] = $a1;
    $output[$index]['title'] = $array2[$index]['title'];
}

答案 3 :(得分:0)

PHP为您提供解决此常见问题的解决方案:

$a = array_merge($b, $c);

使用此解决方案,您将获取$ b中的所有元素并将它们与$ c合并。但是如果你使用关联数组,你应该注意到你要用$ c中的值替换$ b中的值。

例如:

<?php

$a = array(
    'ka' => 1,
    'kb' => 1,
);

$b = array(
    'kb' => 2,
    'kc' => 2,
);

print_r(array_merge($a, $b));


?>

此代码的结果如下:

Array
(
    [ka] => 1
    [kb] => 2
    [kc] => 2
)

答案 4 :(得分:0)

for($i = 0; $i < sizeof($array); $i++)
{
     $mergedarray[a][b] = $a[a][b];
     $mergedarray[a][c] = $b[a][c];
}

据我所知,这就是你想要的,这两个子键都有相同的根键。

答案 5 :(得分:-1)