Добавить элемент в массив

PHP: Добавление и удаление элементов массива

Рассмотрим способы записи значений в массив. Существующий массив может быть изменен явной установкой в нем значений. Это выполняется с помощью присваивания значений массиву.

Операция присваивания значения элементу массива выглядит так же, как операция присваивания значения переменной, за исключением квадратных скобок (), которые добавляются после имени переменной массива. В квадратных скобках указывается индекс/ключ элемента. Если индекс/ключ не указан, PHP автоматически выберет наименьший незанятый числовой индекс.

<?php $my_arr = array( 0 => ‘ноль’, 1 => ‘один’); $my_arr = ‘два’; $my_arr = ‘три’; var_dump($my_arr); // присваивание без указания индекса/ключа $my_arr = ‘четыре’; $my_arr = ‘пять’; echo «<br>»; var_dump($my_arr); ?>

Для изменения определенного значения, нужно просто присвоить новое значение уже существующему элементу. Чтобы удалить какой-либо элемент массива с его индексом/ключом или удалить полностью сам массив, используется функция unset():

<?php $my_arr = array(10, 15, 20); $my_arr = ‘радуга’; // изменяем значение первого элемента unset($my_arr); // Удаляем полностью второй элемент (ключ/значение) из массива var_dump($my_arr); unset($my_arr); // Полностью удаляем массив ?>

Примечание: как уже упоминалось выше, если элемент добавляется в массив без указания ключа, PHP автоматически будет использовать предыдущее наибольшее значение ключа типа integer, увеличенное на 1. Если целочисленных индексов в массиве еще нет, то ключом будет 0 (ноль).

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

<?php // Создаем простой массив с числовыми индексами. $my_arr = array(1, 2, 3); print_r($my_arr); // Теперь удаляем все элементы, но сам массив оставляем нетронутым: unset($my_arr); unset($my_arr); unset($my_arr); echo «<br>»; print_r($my_arr); // Добавляем элемент (обратите внимание, что новым ключом будет 3, вместо 0). $my_arr = 6; echo «<br>»; print_r($my_arr); // Делаем переиндексацию: $my_arr = array_values($my_arr); $my_arr = 7; echo «<br>»; print_r($my_arr); ?>

В этом примере использовались две новые функции, print_r() и array_values(). Функция array_values() возвращает индексированный массив (заново индексирует возвращаемый массив числовыми индексами), а функция print_r работает наподобие var_dump, но выводит массивы в более удобочитаемом виде.

Теперь мы можем рассмотреть третий способ создания массивов:

<?php // следующая запись создает массив $weekdays = ‘Понедельник’; $weekdays = ‘Вторник’; // тоже самое, но с указанием индекса $weekdays = ‘Понедельник’; $weekdays = ‘Вторник’; ?>

В примере был показан третий способ создания массива. Если массив $weekdays еще не был создан, то он будет создан. Однако такой вид создания массива не рекомендуется применять, так как если переменная $weekdays уже была ранее создана и содержит значение, это может привести к неожиданным результатам работы сценария.

Если у вас возникают сомнения по поводу того, является ли переменная массивом, воспользуйтесь функцией is_array. Например, проверку можно выполнить следующим образом:

<?php $yes = array(‘это’, ‘массив’); echo is_array($yes) ? ‘Массив’ : ‘Не массив’; echo ‘<br>’; $no = ‘обычная строка’; echo is_array($no) ? ‘Массив’ : ‘Не массив’; ?>

С этой темой смотрят:

  • Числовые массивы
  • Ассоциативные массивы
  • Перебор элементов массива
  • Многомерные массивы

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *