多维数组上的array_merge_recursive

时间:2016-10-21 07:26:06

标签: php arrays multidimensional-array

请问我如何对下面的代码应用array_merge_recursive

<?php
array:4 [▼
  0 => array:1 [▼
              1 => "1_1"       
  ]
  1 => array:1 [▼
              1 => "1_2"
  ]
  2 => array:1 [▼
              2 => "2_1"
  ]
 3 => array:1 [▼
              2 => "2_2"
  ]
]
?>

我需要输出

<?php
array:2 [▼
 0 => array:2 [▼
   0 => "1_1",
   1 => "1_2"
 ]
 1 => array:2 [▼
   0 => "2_1",
   1 => "2_2"
 ]
 ]
 ?>

注意:内部数组可能会从4增加到1000

谢谢。

1 个答案:

答案 0 :(得分:1)

简短而重要。

$array = [
  0 => [
    0 => '1_1',
  ],
  1=> [
    0 => '1_2',
  ],
  2 => [
    0 => '2_1',
  ],
  3 => [
    0 => '2_2',
  ],
];

foreach(array_chunk($array, 2) as $value){
  print_r(array_merge(array_shift($value), array_pop($value)));
}

从大阵列中获取一大块2。循环遍历块,获取数组中的第一个元素和最后一个元素并合并它们。

结果:

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

删除print_r并根据自己的需要进行调整。

也可以使用

array_merge_recursive代替array_merge,但在这种情况下它完全相同。你仍然需要以某种方式得到块。