2013-05-28 14 views
8

Czy istnieje sposób dla tych tablicJak scalić wielowymiarowe tablice zachowując klucze?

$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("...") 
    ) 
); 

zostać połączone, które wynikają w poniższej tablicy?

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

UWAGA:

  • nie mam kontroli nad strukturą tablicy, tak każde rozwiązanie, które wymaga zmiany struktury nie jest to, czego szukam
  • Jestem zainteresowana głównie zachowując klucze pierwszych 2 poziomów, ale bardziej niezawodne rozwiązanie to takie, które może obsłużyć cały poziom.

Próbowałem za pomocą array_merge_recursive() jak ten

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

ale to spowodowało

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

Czy masz tylko 4 tablice? – HamZa

+0

@tessmore Jest już w pytaniu wyjaśniającym, że próbowałem, ale nie działało zgodnie z oczekiwaniami – arvinsim

+0

@HamZaDzCyberDeV Rzeczywisty kod nad którym pracuję jest różny. Ale to, co jest stałe, to klucze pierwszego i drugiego poziomu. Oczywiście, najlepsze rozwiązanie w ogóle nie powinno o tym martwić. – arvinsim

Odpowiedz

21

Czy za array_replace_recursive()?

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

To tak, jakbyś znał całą instrukcję PHP z głowy: D – HamZa

+1

@Jack Yep, array_replace_recursive() zrobił to, co chciałem zrobić. – arvinsim

+1

@Jack zapisz mój dzień działa +1 –

Powiązane problemy