在浏览MooTools 1.2 源代码时,我发现了Array 的flatten() 方法。 flatten() 方法采用嵌套数组并将它们全部“展平”到一个数组中。我问自己如何使用 PHP 做到这一点。以下是我想出的。
PHP
$myarray = array('a', 'b', array(array(array('x'), 'y', 'z')), array(array('p')));
function array_flatten($array,$return) {
for($x = 0; $x <= count($array); $x++) {
if(is_array($array[$x])) {
$return = array_flatten($array[$x], $return);
}
else {
if(isset($array[$x])) {
$return[] = $array[$x];
}
}
}
return $return;
}
$res = array_flatten($myarray, array());
结果
Array
(
[0] => a
[1] => b
[2] => x
[3] => y
[4] => z
[5] => p
)
如您所见,array_flatten() 被递归地用于从原始数组中嗅出值。虽然我不相信我曾经发现自己有一个像我的示例那样嵌套的数组,但很高兴知道我可以在必要时提取值。
