在浏览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()
被递归地用于从原始数组中嗅出值。虽然我不相信我曾经发现自己有一个像我的示例那样嵌套的数组,但很高兴知道我可以在必要时提取值。