如果优雅最简单快速地将二维数组转换为一维数组, 或者将多维数组转换为一维数组
怎么最简单,快速将多维数组展开平铺为一维数组? 以下为博主的总结供参考:分为平铺展开的深度为2和全部平铺展开的:
先假设有个待展开数组:
$arr = [
'a' => [
'a1' => 'nice100.net',
'a2' => 'good',
],
'b' => [
'b1' => [
'b11' => 'nice',
'b12' => 'like',
]
]
];
平铺展开的深度为2:
//方法一 $result = call_user_func_array('array_merge', $arr); //方法二(会更快) $result = array_merge(...array_values($arr)); //结果输出 Array ( [a1] => nice100.net [a2] => good [b1] => Array ( [b11] => nice [b12] => like ) )
全部平铺展开
//如果要全部平铺展开,那么对于多维数组, array_merge函数就不能满足了,需要办理递归 $re = []; array_walk_recursive($arr, function ($v, $k) use (&$re) { $re[$k] = $v; }, $re); //输入结果,注意如果存在相同的key,那么后者会覆盖前者 Array ( [a1] => nice100.net [a2] => good [b11] => nice [b12] => like )