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.
Advertisement
Answer
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);