PHP foreach изменить значение массива

Когда у вас есть цикл foreach, как показано ниже, я знаю, что вы можете изменить текущий элемент массива через $array[$key], но есть ли способ просто изменить это через $value?

foreach($array as $key => $value){

}

Это, наверное, очень просто, но я новичок в PHP, поэтому, пожалуйста, не раздражайтесь от моего вопроса 🙂

2

Решение

Чтобы иметь возможность напрямую присваивать значения $valueВы хотите сослаться $value предшествуя этому с & как это:

foreach($array as $key => &$value){
$value = 12321; //the same as $array[$key] = 12321;
}

unset($value);

После foreach цикл, вы должны сделать unset($value) потому что вы все еще можете получить к нему доступ после цикла.
Замечания: Вы можете только пройти $value по ссылке, когда массив является переменной. Следующий пример не будет работать:

foreach(array(1, 2, 3) as $key => &$value){
$value = 12321; //the same as $array[$key] = 12321
}

unset($value);

Руководство по PHP для циклов foreach

6

Другие решения

есть функция для этого, и она встроена в раннюю версию PHP, называется array_map

0

Похожие вопросы
Добавить ответ
Для оформления сообщений Вы можете использовать следующие тэги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Нажимая кнопку «Отправить», я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности этого сайта.