Как объединить многомерные массивы при сохранении ключей?

Есть ли способ для этих массивов

$array1 = array( '21-24' => array( '1' => array("...") ) ); $array2 = array( '21-24' => array( '7' => array("..."), ) ); $array3 = array( '25 and over' => array( '1' => array("...") ) ); $array4 = array( '25 and over' => array( '7' => array("...") ) ); 

для объединения, которые приводят к массиву ниже?

 array( '21-24' => array( '1' => array("..."), '7' => array("...") ), '25 and over' => array( '1' => array("..."), '7' => array("...") ) ); 

ПРИМЕЧАНИЕ .

  • Я не контролирую структуру массива, поэтому любое решение, требующее изменения структуры, не является тем, что я ищу
  • Я в основном заинтересован в сохранении ключей первых двух уровней, но более надежное решение – это решение, которое может обрабатывать все уровни.

Я попытался использовать array_merge_recursive (), как это

 $x = array_merge_recursive($array1, $array2); $x = array_merge_recursive($x, $array3); $x = array_merge_recursive($x, $array4); 

но это привело к

  array( '21-24' => array( '1' => array("..."), '2' => array("...") ), '25 and over' => array( '1' => array("..."), '2' => array("...") ) ); 

Related of "Как объединить многомерные массивы при сохранении ключей?"

Вы считали array_replace_recursive() ?

 print_r(array_replace_recursive($array1, $array2, $array3, $array4));