Here is an example array:
$foo = array(
\'employer\' => array(
\'name\' => \'Foobar Inc\',
\'phone\
A solution whith only array_* php functions + recursive :
$array = array(
"level1"=>"value",
"level2" => ["level11" => "value", "level21" => "value"],
"level3" => ["level2" => ["level1" => "value"]],
"level4" => ["level3" => ["level2" => ["level1" => "value"]]],
"level5" => ["level4" => ["level3" => ["level2" => ["level1" => "value"]]]],
);
//flatten array with combined keys
function arrayFlat($array) {
$result = [];
array_walk($array, function($v, $pk)use(&$result){
if(is_array($v)) {
$result += arrayFlat(array_combine(
array_map(function($k) use($pk){ return $pk . '_' .$k; }, array_keys($v)),
$v
));
} else {
$result[$pk] = $v;
}
});
return $result;
}
print_r(arrayFlat($array));
Output :
Array
(
[level1] => value
[level2_level11] => value
[level2_level21] => value
[level3_level2_level1] => value
[level4_level3_level2_level1] => value
[level5_level4_level3_level2_level1] => value
)