将多维数组转换为单维数组

时间:2018-01-30 13:12:45

标签: php

我有一个多维数组,如下所示

Array
(
    [0] => Array
          (
            [0] => manoj
            [1] => karthi
          )
   [1] => Array
          (
            [0] => kumar
          )
)

我想像这样合并两个数组

Array
(
   [0] => manoj
   [1] => karthi
   [2] => kumar
)

2 个答案:

答案 0 :(得分:1)

使用array_walk_recursive

$return = [];

$array = [
    0 => [
        'manoj',
        'karthi',
    ],
    1 => [
        'kumar',
    ]
];

array_walk_recursive($array, function ($value, $key) use (&$return) {
    $return[] = $value;
});

var_dump($return);

输出

array (size=3)
  0 => string 'manoj' (length=5)
  1 => string 'karthi' (length=6)
  2 => string 'kumar' (length=5)

这适用于任何深度的数组。它不会保留键。这么小心。

这也需要annonymous functions,因此需要PHP> = 5.3.0。

答案 1 :(得分:0)

你可以使用它,直接来自Illuminate's Collection helpers

function flatten($array, $depth = INF)
{
    return array_reduce($array, function ($result, $item) use ($depth) {    
        if (! is_array($item)) {
            return array_merge($result, [$item]);
        } elseif ($depth === 1) {
            return array_merge($result, array_values($item));
        } else {
            return array_merge($result, flatten($item, $depth - 1));
        }
    }, []);
}