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.
You can use PHP array_push() function for adding one or more elements/values to the end of an array.
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).
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" );
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);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With