PHP合并两个数组,如javascript的推送([[],[]])

时间:2016-11-25 16:30:20

标签: javascript php arrays merge

我想在PHP中组合两个数组:

Array1 = [123,456,789];

Array2 = [1,2,3];

我想将它们组合如下:

Array3 = [[123,1],[456,2],[789,3]];

在Javascript中,我可以在forloop中使用函数push(),如下所示:

Array3.push([array1[i],array2[i]]);

但我似乎无法弄清楚为什么用PHP无法做到这一点?我尝试过使用

array_merge(array1,array2);
array3 = array1 + array2;

但两者都不起作用。提前谢谢。

4 个答案:

答案 0 :(得分:1)

你正在寻找这样的东西吗? 如果需要,您可能需要添加空检查。

function array_combinemerge($arr1, $arr2) {
    $result = array();
    for ($i = 0; $i < count($arr1); $i++)
        $result[] = array($arr1[$i], $arr2[$i]);
    return $result;
}

示例代码:

// example code
$Array1 = array(123,456,789);
$Array2 = array(1,2,3);
$Combined = array_combinemerge($Array1, $Array2);
print_r($Combined);

这会给你:

Array
(
    [0] => Array
        (
            [0] => 123
            [1] => 1
        )

    [1] => Array
        (
            [0] => 456
            [1] => 2
        )

    [2] => Array
        (
            [0] => 789
            [1] => 
        )

)

答案 1 :(得分:0)

这可以解决您的问题:

$a1 = [123,456,789];
$a2 = [1,2,3];

$a3 = [];

foreach($a1 as $key => $item){
 $a3[$key] = [$a1[$key], $a2[$key]];
}

print_r($a3);  // [[123,1],[456,2],[789,3]];
  

它不是很灵活,但它解决了这种特殊情况。

You can test it here.

答案 2 :(得分:0)

$a1 = [123,456,789];
$a2 = [1,2,3];
$a = array_map(function ($a, $b) {
    return [$a, $b];
}, $a1, $a2);

print_r($a);

答案 3 :(得分:-1)

您可以使用:

$arr_a = [1,2,3];
$arr_b = [4,5,6];

$combined = array_map(function($k,$v)use($arr_b){
   return array($v, $arr_b[$k]);
}, $arr_a);