如何在PHP中合并两个关联数组?
我有两个数组,我想把它们合并到一个数组中。我已经添加了两个数组和所需的输出 阵列1:如何在PHP中合并两个关联数组?,php,Php,我有两个数组,我想把它们合并到一个数组中。我已经添加了两个数组和所需的输出 阵列1: Array ( [0] => Array ( [0] => b561d2e627efd2 [1] => d561d2e627f0cc [2] => f561d2e627f17a [3] => g561d2e627f1d1 ) [1] =&
Array
(
[0] => Array
(
[0] => b561d2e627efd2
[1] => d561d2e627f0cc
[2] => f561d2e627f17a
[3] => g561d2e627f1d1
)
[1] => Array
(
[0] => b561d2e627f632
[1] => d561d2e627f71f
[2] => f561d2e627f7d1
[3] => g561d2e627f823
)
)
阵列2:
Array
(
[0] => Array
(
[0] => c561d2e627f378
[1] => e561d2e627f425
[2] => b561d2e627efd2
)
[1] => Array
(
[0] => c561d2e627f9ee
[1] => e561d2e627fa78
[2] => b561d2e627f632
)
)
所需输出:
Array
(
[0] => Array
(
[0] => b561d2e627efd2
[1] => d561d2e627f0cc
[2] => f561d2e627f17a
[3] => g561d2e627f1d1
[4] => c561d2e627f378
[5] => e561d2e627f425
[6] => b561d2e627efd2
)
[1] => Array
(
[0] => b561d2e627f632
[1] => d561d2e627f71f
[2] => f561d2e627f7d1
[3] => g561d2e627f823
[4] => c561d2e627f9ee
[5] => e561d2e627fa78
[6] => b561d2e627f632
)
)
您不建议需要处理重复的值,而且两个数组似乎具有相同数量的第一级元素,因此只需将数组2的内容推送到数组1中,就可以完成这项工作,并使用一个简单的嵌套循环:
foreach($array1 as $k=>$v){
foreach($array2[$k] as $val){
$array1[$k][] = $val;
}
}
您可以使用“展平”这些阵列
假设第一个数组名为$array1,第二个数组名为array2,则在上面引用的示例中,它将如何工作
$new_array = array_merge($array1[0], $array1[1]);
$new_array2 = array_merge($array2[0], $array2[1]);
print_r($new_array);
print_r($new_array2);
简单。迭代第一个数组,获取当前键,使用该键获取第二个数组的块,使用
array\u merge
合并它们,然后将它们推送到新数组。请执行以下操作:
$arr1 = array(
array("one", "two", "three"),
array("ten", "eleven", "twelve")
);
$arr2 = array(
array("four", "five", "six"),
array("thirteen", "fourteen", "fifteen")
);
foreach ($arr1 as $k => $arr1_chunk) {
$arr2_chunk = $arr2[$k];
$final[] = array_merge($arr1_chunk, $arr2_chunk);
}
var_dump($final);
结果:
array (size=2)
0 =>
array (size=6)
0 => string 'one' (length=3)
1 => string 'two' (length=3)
2 => string 'three' (length=5)
3 => string 'four' (length=4)
4 => string 'five' (length=4)
5 => string 'six' (length=3)
1 =>
array (size=6)
0 => string 'ten' (length=3)
1 => string 'eleven' (length=6)
2 => string 'twelve' (length=6)
3 => string 'thirteen' (length=8)
4 => string 'fourteen' (length=8)
5 => string 'fifteen' (length=7)
您的问题仍然重复。为什么两次被否决?@CodeGodie可能被接受,因为它符合OP的要求-
$array1
将匹配预期输出。我特别提到,这是一种幼稚的方法,不处理重复项或不同长度的数组,但OP从一开始就没有提出这是一项要求。你知道吗。你是对的。我认为foreach
中的$array1
变量是另一个变量。我现在将删除我的评论并进行投票。感谢您的反馈。这将不起作用,因为合并需要与第二个数组进行,即array1[0]
与array2[0]