How exactly is this function not in the PHP core yet?
function array_flatten($arr) {
$flattened = array();
if (is_array($arr)) {
foreach ($arr as $value) {
$flattened = array_merge($flattened, array_flatten($value));
}
} else {
$flattened[] = $arr;
}
return $flattened;
}
Usage:
$a = array(
'foo' => 'bar',
'baz' => array(1, 2, 3, 4, 5),
'bat' => array(
'a',
array(
'b',
array(
'c',
array('d')
)
)
)
);
print_r(array_flatten($a));
/*
Array
(
[0] => bar
[1] => 1
[2] => 2
[3] => 3
[4] => 4
[5] => 5
[6] => a
[7] => b
[8] => c
[9] => d
)
*/
This version is
interesting, but using create_function() is rarely a good idea, since it's
never garbage collected.