使用引用更改数组中的值

时间:2012-02-17 19:54:43

标签: php reference

 //below example now works thanks to Alexander. 

我正在尝试使用array_walk_recursive,但我无法获得要更改的数组中的原始值。我到底错在了什么?

public function setConstants()
{
    array_walk_recursive($this->_arr, function(&$item, $key2){

        $constants = get_defined_constants(true);

        foreach($constants["user"] as $key => $value)
        {
            if (strstr($item, $key)){
                $item = str_replace($key,$value,&$item); //EDITED FOR VALIDITY, WORKS.
            }
        }
    });
    return $this->_arr;
}

我试图使用array_walk_recursive遍历多维数组“_arr”,并且对于常量[user](也是数组)的每个常量,我想在_arr中替换等效值,如果字符串匹配常数名称

1 个答案:

答案 0 :(得分:2)

我认为您没有适当地分配替换值。

$item = str_replace($key,$value,$item);

而不是:

str_replace($key,$value,&$item);

应该够了。