Is it possible, in PHP, to flatten a (bi/multi)dimensional array without using recursion or references?
I'm only interested in the values so the keys can be ignored, I'm thinking in the lines of array_map()
and array_values()
.
By using ndarray. flatten() function we can flatten a matrix to one dimension in python. order:'C' means to flatten in row-major. 'F' means to flatten in column-major.
– Usage of Implementation of Method 2 $flattened = new RecursiveArrayIterator ($array); $flattened = new RecursiveIteratorIterator ($flattened); $flattened = iterator_to_array ($flattened, FALSE); var_dump ($flattened);
As of PHP 5.3 the shortest solution seems to be array_walk_recursive()
with the new closures syntax:
function flatten(array $array) { $return = array(); array_walk_recursive($array, function($a) use (&$return) { $return[] = $a; }); return $return; }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With