it-swarm.com.de

PHP füge mit array_push Elemente zum mehrdimensionalen Array hinzu

Ich habe ein mehrdimensionales Array $ md_array und möchte den Unterarrays recipe_type und cuisine weitere Elemente hinzufügen, die aus einer Schleife stammen, die Daten aus einer Tabelle liest.

In der Schleife erstelle ich für jede Zeile eine neue Tabelle $ newdata:

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

und dann muss ich mit array_Push() die $ newdata-Arrays an das folgende mehrdimensionale Array anhängen:

$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' => ''
        )
      ) 
    );

Wie lautet die Syntax zum Hinzufügen eines neuen Elements (Arrays) zum Array "recipe_type" mit "array_push"? Ich könnte meinen Kopf nie um mehrdimensionale Reihen erhalten und ich bin ein wenig verwirrt.

47
bikey77

wenn Sie die Daten in der inkrementellen Reihenfolge in Ihrem assoziativen Array hinzufügen möchten, können Sie dies tun:

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

// for recipe

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

//for cuisine

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

dies wird dem Rezept oder der Küche hinzugefügt, je nachdem, was der letzte Index war.

Array-Push wird normalerweise im Array verwendet, wenn Sie über einen sequenziellen Index verfügen: $ arr [0], $ ar [1]. Sie können ihn nicht direkt im assoziativen Array verwenden. Da Ihr Sub-Array jedoch über einen solchen Index verfügt, können Sie ihn trotzdem so verwenden

array_Push($md_array["cuisine"],$newdata);
71
Dinesh

Da es sich bei einem Eintrag im mehrdimensionalen Array um ein anderes Array handelt, geben Sie den Index dieses Werts für array_Push an:

array_Push($md_array['recipe_type'], $newdata);
15
dtech