Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP add elements to multidimensional array with array_push

I have a multidimensional array $md_array and I want to add more elements to the sub-arrays recipe_type and cuisine coming from a loop that reads data from a table.

In the loop, I create a new table $newdata for each row:

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

and then, using array_push() I need to append the $newdata arrays to the following multidimensional array:

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

Whats the syntax for adding a new element (array) to the recipe_type array with array_push? I could never get my head around multidimensional arrays and I'm a bit confused.

like image 837
bikey77 Avatar asked Apr 30 '13 20:04

bikey77


People also ask

How add a value to a 2D array in PHP?

You can use PHP array_push() function for adding one or more elements/values to the end of an array.

What is Array_push in PHP?

Definition and Usage. The array_push() function inserts one or more elements to the end of an array. Tip: You can add one value, or as many as you like. Note: Even if your array has string keys, your added elements will always have numeric keys (See example below).

How can I append an array to another array in PHP?

Given two array arr1 and arr2 and the task is to append one array to another array. Using array_merge function: This function returns a new array after merging the two arrays. $arr1 = array ( "Geeks" , "g4g" );


1 Answers

if you want to add the data in the increment order inside your associative array you can do this:

$newdata =  array (       'wpseo_title' => 'test',       'wpseo_desc' => 'test',       'wpseo_metakey' => 'test'     );  // for recipe  $md_array["recipe_type"][] = $newdata;  //for cuisine   $md_array["cuisine"][] = $newdata; 

this will get added to the recipe or cuisine depending on what was the last index.

Array push is usually used in the array when you have sequential index: $arr[0] , $ar[1].. you cannot use it in associative array directly. But since your sub array is had this kind of index you can still use it like this

array_push($md_array["cuisine"],$newdata); 
like image 163
Dinesh Avatar answered Sep 20 '22 07:09

Dinesh