具有相同索引键和结构的两个数组需要单个数组的组合数组

时间:2018-01-24 18:30:18

标签: php arrays

我的第一个数组看起来像这样

$array1 = array('0' => 'news', '1' => 'game');

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

我的第二个数组看起来像这样

$array2 = array('0' => '1', '1' => '2');

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

我需要这样的输出

$array3 = array(array('0'=>'new', '1'=>'1'),array('0'=>'game', '1'=>'2'));

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

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

)

我尝试了使用array_merge,array_merge_recursive和loop的多种方式  但没有得到正确的输出。

4 个答案:

答案 0 :(得分:2)

这是一个简单的方法:

$result = array_map(null, $array1, $array2);

无论索引如何,这都会有效,因此在您的情况下,无论好坏,这些也会产生相同的结果:

$array1 = array(1 => 'news', 5 => 'game');
$array2 = array(2 => '1', 6 => '2');

答案 1 :(得分:1)

您可以使用array_map作为第一个参数:

null
$result = array_map(null, $first_array, $second_array);

答案 2 :(得分:0)

使用此code

$array1 = array_values($array1);
$array2 = array_values($array2);
$array = [];

$count = count($array1);
for($i=0;$i<$count;$i++)
    $array[] = [$array1[$i] , $array2[$i]];

var_dump($array);

答案 3 :(得分:0)

很多方法可以做到这一点,array_map和其他人已经回答的可能是你最好的选择。如果你想看看发生了什么:

 foreach($array1 as $key => $value){
      $array3[$key] = array($value, $array2[$key]);
 }