我有一个多维数组$ md_array,我想在子数组recipe_type中添加更多元素,并从一个从表中读取数据的循环中添加美食。
在循环中,我为每一行创建一个新表$ newdata:
$newdata = array (
'wpseo_title' => 'test',
'wpseo_desc' => 'test',
'wpseo_metakey' => 'test'
);
然后,使用array_push()
我需要将$ newdata数组附加到以下多维数组:
$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' => ''
)
)
);
使用array_push将新元素(数组)添加到recipe_type数组的语法是什么?我永远无法理解多维数组,我有点困惑。
答案 0 :(得分:69)
如果要在关联数组中以增量顺序添加数据,可以执行以下操作:
$newdata = array (
'wpseo_title' => 'test',
'wpseo_desc' => 'test',
'wpseo_metakey' => 'test'
);
// for recipe
$md_array["recipe_type"][] = $newdata;
//for cuisine
$md_array["cuisine"][] = $newdata;
这将根据最后一个索引添加到配方或美食中。
当你有顺序索引时,数组推送通常在数组中使用:$ arr [0],$ ar [1] ..你不能直接在关联数组中使用它。但是由于你的子数组有这种索引,你仍然可以像这样使用它
array_push($md_array["cuisine"],$newdata);
答案 1 :(得分:13)
在多维数组中,一个条目是另一个数组,指定该数组的索引为array_push:
array_push($md_array['recipe_type'], $newdata);
答案 2 :(得分:0)
我知道这个话题很旧,但是在Google搜索之后我就发现了这个话题,所以...这是另一种解决方案:
$array_merged = array_merge($array_going_first, $array_going_second);
这对我来说似乎很干净,效果很好!