PHP将一个数组与另一个子数组组合起来
我有2个数组,我尝试合并它,因为它们的密钥长度相同,但我出错了。以下是我的数组:PHP将一个数组与另一个子数组组合起来,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有2个数组,我尝试合并它,因为它们的密钥长度相同,但我出错了。以下是我的数组: $arary1 = array(0=>array(0=>1, 1=>2, 2=>3), 1=>array(0=>1, 1=>2, 2=>3), 2=>array(0=>1, 1=>2, 2=>3)
$arary1 = array(0=>array(0=>1, 1=>2, 2=>3),
1=>array(0=>1, 1=>2, 2=>3),
2=>array(0=>1, 1=>2, 2=>3)
);
$array2 = array(
array(0=>
array(0=>4, 1=>5, 2=>6, 3=>7, 4=>8),
array(0=>9, 1=>10, 2=>11, 3=>12, 4=>13),
array(0=>14, 1=>15, 2=>16)),
array(1=>
array(0=>4, 1=>5, 2=>6, 3=>7, 4=>8),
array(0=>9, 1=>10, 2=>11, 3=>12, 4=>13),
array(0=>14, 1=>15, 2=>16)),
array(2=>
array(0=>4, 1=>5, 2=>6, 3=>7, 4=>8),
array(0=>9, 1=>10, 2=>11, 3=>12, 4=>13),
array(0=>14, 1=>15, 2=>16))
);
在这里你可以看到我想要得到的东西:
$newarray = array(
array(0=>
array(0=>1, 1=>2, 2=>3),
array(0=>4, 1=>5, 2=>6, 3=>7, 4=>8),
array(0=>9, 1=>10, 2=>11, 3=>12, 4=>13),
array(0=>14, 1=>15, 2=>16)),
array(1=>
array(0=>1, 1=>2, 2=>3),
array(0=>4, 1=>5, 2=>6, 3=>7, 4=>8),
array(0=>9, 1=>10, 2=>11, 3=>12, 4=>13),
array(0=>14, 1=>15, 2=>16)),
array(2=>
array(0=>1, 1=>2, 2=>3),
array(0=>4, 1=>5, 2=>6, 3=>7, 4=>8),
array(0=>9, 1=>10, 2=>11, 3=>12, 4=>13),
array(0=>14, 1=>15, 2=>16))
);
我的阵列是动态的,但是$array1和$array2的长度是相同的。有人能帮我吗?你可以使用
array\u map
在你的数组中循环,并使用array\u merge
合并这两个数组
$arary1 = ...
$array2 = ...
$newarray = array_map(function ($a, $b) {
return array_merge(array($a),$b);
}, $arary1, $array2 );
echo "<pre>";
print_r( $newarray );
echo "</pre>";
或者使用foreach
循环
Doc:,你看了吗?@SudheeshSinganamalla是的,dones't workdid你看了array\u merge吗?
array\u merge
应该做这个工作:@whoami是的corse但是我做的就是从3数组变成6数组它只是把第一个数组加到第二个数组,但我需要把一个数组加到一个子数组中。thx很多,但是,如果不使用array\u map,我怎么做呢?“也许是一个foreach和for?”埃迪,当我们必须排列地图的时候arrays@CananauCristian我为foreachHappy添加了一个示例:)
Array
(
[0] => Array
(
[0] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
[1] => Array
(
[0] => 4
[1] => 5
[2] => 6
[3] => 7
[4] => 8
)
[2] => Array
(
[0] => 9
[1] => 10
[2] => 11
[3] => 12
[4] => 13
)
[3] => Array
(
[0] => 14
[1] => 15
[2] => 16
)
)
[1] => Array
(
[0] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
[1] => Array
(
[0] => 4
[1] => 5
[2] => 6
[3] => 7
[4] => 8
)
[2] => Array
(
[0] => 9
[1] => 10
[2] => 11
[3] => 12
[4] => 13
)
[3] => Array
(
[0] => 14
[1] => 15
[2] => 16
)
)
[2] => Array
(
[0] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
[1] => Array
(
[0] => 4
[1] => 5
[2] => 6
[3] => 7
[4] => 8
)
[2] => Array
(
[0] => 9
[1] => 10
[2] => 11
[3] => 12
[4] => 13
)
[3] => Array
(
[0] => 14
[1] => 15
[2] => 16
)
)
)
$newarray = array();
foreach( $arary1 as $key => $val ) {
$newarray[] = array_merge(array($val),$array2[$key]);
}