无法将新项添加到数组

时间:2012-05-31 16:39:31

标签: php modx

我有一个数组,我需要添加一些键/值对,但我遇到了麻烦。这是我的数组的一个例子:

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']确实包含了我需要它...我似乎无法将其添加到数组中。

3 个答案:

答案 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'];
}