首页 > 解决方案 > 合并多维PHP数组中的数组元素

问题描述

我有一个像下面这样的 php 数组

Array ( 
      [0] => Array ( 
            [0] => Some name 
            [1] => some email 
            [2] => 17981 
            [3] => 0 
            [4] => 52 
            [5] => a 
            [6] => b 
            [7] => c 
            [8] => d
        )
)

我想在第 5 个索引之后合并数组的元素,因此“a,b,c,d”组合成单个索引,如下所示

Array ( 
    [0] => Array ( 
        [0] => Some name 
        [1] => some email 
        [2] => 17981 
        [3] => 0 
        [4] => 52 
        [5] =>a,b,c,d 
    )
)

感谢您的时间和帮助。

标签: phparraysmultidimensional-array

解决方案


只需遍历输入数组并接受输出数组中的所有条目,您希望它们如何放置:

<?php
$input = [["Some name", "some email", 17981, 0, 52, 'a', 'b', 'c', 'd']];
$output = [];
$divider = 5;
array_walk($input[0], function($entry, $key) use (&$output, $divider) {
  if ($key < $divider) {
    $output[0][] = $entry;
  } else {
    $output[0][$divider][] = $entry;
  }
});
print_r($output);

输出显然是:

Array
(
    [0] => Array
        (
            [0] => Some name
            [1] => some email
            [2] => 17981
            [3] => 0
            [4] => 52
            [5] => Array
                (
                    [0] => a
                    [1] => b
                    [2] => c
                    [3] => d
                )

        )
)

推荐阅读