我有一个数组,我需要添加一些键/值对,但我遇到了麻烦。这是我的数组的一个例子:
Array
(
[0] => Array
(
[id] => 108
[pagetitle] => Title
[description] =>
[parent] => 35
[alias] => url-alias
[menutitle] =>
)
)
我正在尝试插入一个名为“country”的新密钥及其值,但我无法弄清楚我做错了什么。
foreach($all_items as $item) {
$country = $modx->getTemplateVarOutput(array("country"), $item['id'], $published=1);
$item['country'] = $country['country'];
}
我已经确认$country['country']
确实包含了我需要它...我似乎无法将其添加到数组中。
答案 0 :(得分:9)
如果要修改数组元素,则需要按引用传递数组元素。
foreach($all_items as &$item) {
...
答案 1 :(得分:2)
这是因为$item
数组实际上只是$all_items
中元素的副本。
要达到你想要的效果,你可以这样做:
foreach($all_items as &$item) {
$country = $modx->getTemplateVarOutput(array("country"), $item['id'], $published=1);
$item['country'] = $country['country'];
}
另请参阅foreach的文档,您可以找到它。
答案 2 :(得分:1)
这应该按照你的要求行事:
foreach($all_items as $k=>$v) {
$country = $modx->getTemplateVarOutput(array("country"), $all_items[$k]['id'], $published=1);
$all_items[$k]['country'] = $country['country'];
}