I have an array like this:
array (size=4)
0 =>
array (size=4)
key => value
key => value
key => value
key => value
1 =>
array (size=2)
key => value
key => value
2 =>
array (size=1)
key => value
3 =>
array (size=1)
key => value
I want to flatten the array to be this:
array (size=4)
key => value
key => value
key => value
key => value
key => value
key => value
key => value
key => value
I have tried my own solutions using things like array_merge
, array_walk_recursive
, and RecursiveIteratorIterator
with RecursiveArrayIterator
. I also tried many of the solutions posted on similar questions on StackOverflow, but none of them work the way I would expect. They either do not preserve the key value pairs, or they give me an array that is identical to the original. My attempts look something like this:
$multidimensionalArray = array(stuff goes here);
$flatArray = array();
function flattenArray ($array) {
foreach ($array as $key => $value) {
if (is_array($value) {
flattenArray($value);
}
else {
$flatArray[$key] = $value;
}
}
}
flattenArray($multidimensionalArray);