使用 PHP 展平嵌套数组

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

赞(0) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏