2013-04-30 16 views
36

Mam tablicę wielowymiarową $ md_array i chcę dodać więcej elementów do podparałów recepte_type i kuchni pochodzących z pętli odczytującej dane z tabeli.PHP dodawać elementy do wielowymiarowej tablicy z array_push

W pętli utworzyć nową tablicę $ newData dla każdego rzędu:

$newdata = array (
      'wpseo_title' => 'test', 
      'wpseo_desc' => 'test', 
      'wpseo_metakey' => 'test' 
     ); 

, a następnie, za pomocą array_push() trzeba dołączyć tablice $ newData z następującym wielowymiarowej tablicy:

$md_array= array (
    'recipe_type' => 
     array (
     18 => 
     array (
      'wpseo_title' => 'Salads', 
      'wpseo_desc' => 'Hundreads of recipes for Salads', 
      'wpseo_metakey' => '' 
     ), 
     19 => 
     array (
      'wpseo_title' => 'Main dishes', 
      'wpseo_desc' => 'Hundreads of recipes for Main dishes', 
      'wpseo_metakey' => '' 
     ) 
    ), 
    'cuisine' => 
     array (
     22 => 
     array (
      'wpseo_title' => 'Italian', 
      'wpseo_desc' => 'Secrets from Sicily in a click', 
      'wpseo_metakey' => '' 
     ), 
     23 => 
     array (
      'wpseo_title' => 'Chinese', 
      'wpseo_desc' => 'Oriental dishes were never this easy to make', 
      'wpseo_metakey' => '' 
     ), 
     24 => 
     array (
      'wpseo_title' => 'Greek', 
      'wpseo_desc' => 'Traditional Greek flavors in easy to make recipies', 
      'wpseo_metakey' => '' 
     ) 
    ) 
    ); 

Co oznacza składnia dodawania nowego elementu (tablicy) do tablicy recipe_type za pomocą array_push? Nigdy nie mogłem się zorientować w wielowymiarowych układach i jestem nieco zdezorientowany.

Odpowiedz

54

jeśli chcesz dodać dane w kolejności przyrost wewnątrz asocjacyjnej możesz zrób to:

$newdata = array (
     'wpseo_title' => 'test', 
     'wpseo_desc' => 'test', 
     'wpseo_metakey' => 'test' 
    ); 

// for recipe 

$md_array["recipe_type"][] = $newdata; 

//for cuisine 

$md_array["cuisine"][] = $newdata; 

zostanie to dodane do przepisu lub dania w zależności od ostatniego indeksu.

Wstaw tablicowy jest zwykle używany w tablicy, gdy mamy indeks sekwencyjny: $ arr [0], $ ar [1] .. nie można go używać bezpośrednio w tablicy asocjacyjnej. Ale ponieważ sub tablica jest mieliśmy tego rodzaju indeksu można nadal używać go tak jak to

array_push($md_array["cuisine"],$newdata); 
+0

Oto pytanie: przed array_push, Dodaję nowy wiersz do bazy danych i ten wiersz musi być połączone id do elementu tablicy. Tak więc, jeśli '$ id = mysql_insert_id()' to robię '$ md_array [" recipe_type "] [$ id] = $ newdata', prawda? – bikey77

11

jak w wielowymiarowej tablicy wpis jest kolejną tablicą, określić wskaźnik tej wartości do array_push:

array_push($md_array['recipe_type'], $newdata); 
Powiązane problemy