Input
$array = [
'a' => [
'x' => 'X',
'y' => 'Y',
'z' => 'Z',
],
'b' => [
'p' => 'P',
'q' => 'Q',
'o' => 'M',
],
];
Process:
array_merge(...array_values($array))
Output:
echo '<pre>';
print_r(array_merge(...array_values($array )));
echo '</pre>';
Array
(
[x] => X
[y] => Y
[z] => Z
[p] => P
[q] => Q
[o] => M
)
Other Solution:
Solution for 2 dimensional array
$array = your array
$result = call_user_func_array('array_merge', $array);
echo "<pre>";
print_r($result);
Here is the solution which works for multi-dimensional array :
function array_flatten($array) {
$return = array();
foreach ($array as $key => $value) {
if (is_array($value)){
$return = array_merge($return, array_flatten($value));
} else {
$return[$key] = $value;
}
}
return $return;
}
$array = Your array
$result = array_flatten($array);
echo "<pre>";
print_r($result);
echo "</pre>";
