Когда у вас есть цикл foreach, как показано ниже, я знаю, что вы можете изменить текущий элемент массива через $array[$key]
, но есть ли способ просто изменить это через $value
?
foreach($array as $key => $value){
}
Это, наверное, очень просто, но я новичок в PHP, поэтому, пожалуйста, не раздражайтесь от моего вопроса 🙂
Чтобы иметь возможность напрямую присваивать значения $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, называется array_map