如何扁平化多维数组?
2022-08-30 05:59:32
在 PHP 中,是否有可能在不使用递归或引用的情况下展平(二维/多维)数组?
我只对值感兴趣,所以键可以被忽略,我在和的行中思考。array_map()
array_values()
在 PHP 中,是否有可能在不使用递归或引用的情况下展平(二维/多维)数组?
我只对值感兴趣,所以键可以被忽略,我在和的行中思考。array_map()
array_values()
从 PHP 5.3 开始,最短的解决方案似乎是使用新的闭包语法array_walk_recursive():
function flatten(array $array) {
$return = array();
array_walk_recursive($array, function($a) use (&$return) { $return[] = $a; });
return $return;
}
您可以使用标准 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