将两个简单数组合并为一个多维数组

Merging two simple arrays into a multidimensional array

我正在尝试将两个数组合并在一起,但我不知道该怎么做。

第一个数组:

Array
(
    [0] => a
    [1] => b
    [2] => c
)

第二个数组:

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

我想要达到的目标:

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

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

    [2] => Array
        (
            [0] => c
        )
)

我知道这很容易实现,但我的大脑不肯合作。也许我需要更多咖啡...

// 感谢所有的反对票:)

也许不是最好的方法,但在这种情况下应该有效:

$newArray = array();
foreach ($array1 as $index => $row) {
    $newArray[$index] = array($row);
    if (isset($array2[$index])) {
        $newArray[$index][] = $array2[$index];
    }
}

简单foreach迭代:

$a = array('a', 'b', 'c');
$b = array(1, 1);

$result = array();

foreach($a as $key => $value) {
    $tmp = array($value);
    if (isset($b[$key])) {
        $tmp[] = $b[$key];
    }
    $result[] = $tmp;
}

print_r($result);

结果:

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

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

    [2] => Array
        (
            [0] => c
        )

)

这称为 "zipping",当第一个参数为 null:

时,可以使用 array_map 在 php 中完成
$x = ['a', 'b', 'c'];
$y = [1, 2];

$z = array_map(null, $x, $y);
print_r($z);

结果:

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

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

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

)
//1st Array:
$array_1 = array( 0=>'a',1=>'b',2=>'c');

//2nd Array:
$array_2 = array( 0=>1,1=>1);

//Result:
$holder = array();


for($i =0 ; $i <= max(count($array_1),count($array_2)); $i++){
    if(isset($array_1[$i])){
        $holder[$i][] = $array_1[$i];
    }

    if(isset($array_2[$i])){
        $holder[$i][] = $array_2[$i];
    }
}

//Required Result:
print_r($holder);

希望这对您有所帮助...;p