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

时间:2014-06-27 02:31:24

标签: php arrays

所以我有两个单独的数组。一个具有目标的ID,另一个具有目标的名称。两者都是按字母顺序排列的。

示例:

  $array[1] => Array
    (
        [0] => 113139803806479652682
        [1] => 100276549585470687394
    )

 $array[2] => Array
    (
        [0] => EDM
        [1] => Space
    )

所以在$ array [1]中,[0]中的[0]是“EDM”的ID(如$ array [2]中所示),然后$ array [1]中的[1]是“空间”。

我想要实现的是输出一个如下所示的新数组:

  [0] => Array
 ( 
  [0] => 113139803806479652682
  [1] => EDM
 )
  [1] => Array
 (
 [0] => 100276549585470687394
 [1] => Space
 )

基本上是一个新的数组,它返回一个多维数组,其ID和名称在同一个数组中,取自两个已经按顺序排列名称和ID的sepearte数组,只是我希望它们形成所以它们组合在一起。 / p>

我希望这是有道理的。我对PHP和编码很新。

4 个答案:

答案 0 :(得分:0)

$results = [];

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

答案 1 :(得分:0)

 $newarray=array();

foreach($array1 as $k=>$val){

  $newarray[$k]['ID'] = $val;
  $newarray[$k]['name'] = $array2[$k];

}

答案 2 :(得分:0)

这可能不是最优雅的解决方案,但它可以解决问题。代码如下:

$arraySum = array();
for($i=0; $i<count($array1); $i++) {
    $arraySum[$i][$i] = $array1[$i];
    $arraySum[$i][$i+1] = $array2[$i];
}

答案 3 :(得分:0)

通过使用array_map()回调参数和null上的“ splat运算符”调用$array来将其“解压缩”为多个一维输入数组,您可以巧妙地生成自己的简洁的一列式即可获得所需的,重新索引的输出数组。

代码:(Demo

$array[1] = [
     '113139803806479652682',
     '100276549585470687394'
];

$array[2] = [
     'EDM',
     'Space'
];

var_export(array_map(null, ...$array));

输出:

array (
  0 => 
  array (
    0 => '113139803806479652682',
    1 => 'EDM',
  ),
  1 => 
  array (
    0 => '100276549585470687394',
    1 => 'Space',
  ),
)