Изменение значения в массиве со ссылками - PullRequest
0 голосов
/ 17 февраля 2012
 //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;
}

Я пытаюсь пройти через многомерный массив "_arr", используя array_walk_recursive, и для каждой константы, которая является частью констант [user] (который также является массивом)я хочу заменить эквивалентное значение в _arr, если строка соответствует имени константы

1 Ответ

2 голосов
/ 18 февраля 2012

Я думаю, что вы не назначаете замененное значение надлежащим образом.

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

Вместо:

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

должно быть достаточно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...