Перейти к основному содержимому

PHP: изменение элементов массива

Чтобы изменить элемент, сначала нужно его найти: по номеру индекса в индексированном массиве или по имени ключа в ассоциативном.

Пример

Замените «BMW», второй элемент, на «Ford»:

Prompt
Напишите PHP-скрипт, который создаёт индексный массив со значениями "Volvo", "BMW" и "Toyota", а затем изменяет второй элемент на "Ford".
Вывод: PHP-скрипт

Изменение элемента ассоциативного массива

Примечание: Помните, что индексация начинается с 0, поэтому второй элемент — это $cars[1].

Ассоциативные массивы следуют той же схеме, только с именем ключа:

Пример

Присвойте элементу year значение 2024:

Prompt
Напишите PHP-скрипт, который создаёт ассоциативный массив для автомобиля с brand "Ford", model "Mustang" и year 1964, а затем изменяет year на 2024.
Вывод: PHP-скрипт

Изменение элементов массива в цикле foreach

Изменить значения внутри цикла foreach можно несколькими способами.

Один из них — поставить символ & перед переменной цикла. Тогда переменная хранит ссылку на каждый элемент, а не копию, поэтому всё, что вы делаете с ней внутри цикла, изменяет и исходный массив:

Пример

Присвойте каждому элементу значение «Ford»:

Prompt
Напишите PHP-скрипт, который создаёт индексный массив со значениями "Volvo", "BMW" и "Toyota", с помощью цикла foreach с переменной-ссылкой изменяет все значения на "Ford", затем вызывает unset для ссылки и выводит массив с помощью var_dump().
Вывод: PHP-скрипт

Забытый unset()

Примечание: Всегда вызывайте unset() после завершения цикла. Без этого $x остаётся связанной с последним элементом массива.

В следующем примере этот вызов пропущен, а после цикла переменной $x присваивается новое значение. Посмотрите, что произойдёт с последним элементом:

Пример

Без unset() новое значение $x перезаписывает последний автомобиль:

Prompt
Напишите PHP-скрипт, который создаёт индексный массив со значениями "Volvo", "BMW" и "Toyota", с помощью цикла foreach с переменной-ссылкой изменяет все значения на "Ford", но НЕ вызывает unset, затем присваивает переменной цикла значение "ice cream" и выводит массив с помощью var_dump().
Вывод: PHP-скрипт