php多维数组转化为一维数组的几种方法

时间:2017-07-27
本文向大家介绍php如何将多维数组转化为一维数组的几种方法(数组的扁平化),需要的朋友可以参考一下。

第一种方法:

您可以使用标准PHP库(SPL)来“隐藏”递归。

$a = array(1,2,array(3,4, array(5,6,7), 8), 9);
$it = new RecursiveIteratorIterator(new RecursiveArrayIterator($a));
foreach($it as $v) {
  echo $v, " ";
}

输出结果:

1 2 3 4 5 6 7 8 9 

第二种方法:

PHP 5.3开始,最短的解决方案似乎是array_walk_recursive()使用新的闭包语法:

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

第三种方法:

自定义函数法

function array_flatten($array) {
    $return = array();
    foreach ($array as $key => $value) {
        if (is_array($value)){
            $return = array_merge($return, array_flatten($value));
        } else {
            $return[$key] = $value;
        }
    }

    return $return;
}

$array  = Your array

$result = array_flatten($array);

echo "<pre>";
print_r($result);