问题
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.
回答1:
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);
回答2:
As in the multi-dimensional array an entry is another array, specify the index of that value to array_push:
array_push($md_array['recipe_type'], $newdata);
来源:https://stackoverflow.com/questions/16308252/php-add-elements-to-multidimensional-array-with-array-push