PHP и серверы

PHP массивы добавить в массиве

PHP массивы добавить в массиве 📅 ⏱ 20:41 ⏳ 2 мин 💬 0

Php массивы добавить в массиве: простыми словами, по шагам и с примерами. Разбираем, как это работает на практике, типичные ошибки и лучшие решения. Раскрываем

PHP массивы добавить в массиве

Коротко: добавить элементы в массив в PHP можно несколькими способами: $arr[] = $value (в конец), array_push() (в конец, один или несколько), $arr['ключ'] = $value (по ключу), array_merge() (объединить массивы), array_unshift() (в начало). Для «массива в массиве» — добавляем во вложенный элемент по цепочке.

Кому и зачемДобавление значений — ежедневная операция: собрать список, дополнить ответ API, добавить товар в корзину, сформировать конфиг.

Способы добавления

Задача Функция
Добавить в конец $arr[] = $v
Добавить несколько в конец array_push()
Добавить по ключу $arr['key'] = $v
Добавить в начало array_unshift()
Слить два массива array_merge()
Слить с сохранением ключей + (оператор объединения)

Вкладки: примеры




CODE
$list = ['яблоко', 'груша'];

$list[] = 'банан';           // быстрый способ
array_push($list, 'слива');  // то же самое

print_r($list);
// яблоко, груша, банан, слива

$arr[] короче и работает чуть быстрее, чем array_push() с одним элементом. array_push() удобен, когда нужно добавить сразу несколько значений.

CODE
$user = ['name' => 'Иван'];

$user['email'] = 'ivan@example.com';
$user['roles'][] = 'админ';

print_r($user);
// ['name' => 'Иван', 'email' => ..., 'roles' => ['админ']]

По ключу добавляют значения в ассоциативный массив и «вглубь» — во вложенный массив. Если ключа нет, он создастся автоматически.

CODE
$queue = ['задача 2', 'задача 3'];
array_unshift($queue, 'задача 1');

print_r($queue);
// задача 1, задача 2, задача 3

array_unshift() добавляет в начало и пересчитывает числовые индексы. Для больших массивов эта операция «дорогая» — используйте редко.

CODE
$a = ['a' => 1, 'b' => 2];
$b = ['b' => 3, 'c' => 4];

$merged = array_merge($a, $b);
// ключ 'b' перезаписан значением 3

$union = $a + $b;
// ключи из $a приоритетнее, 'b' остаётся 2

Разница важна: array_merge() перезаписывает значения по строковым ключам и «перенумеровывает» числовые, а оператор + оставляет первое встреченное значение.

Строковые ключи и array_mergeПри слиянии array_merge() строковые ключи перезаписываются «справа налево». Это частая причина «пропавших» настроек — если объединяете конфиги, проверяйте порядок аргументов.

Добавление «массива в массив»

CODE
$cart = [];

$cart[] = ['id' => 1, 'qty' => 2];
$cart[] = ['id' => 5, 'qty' => 1];

// добавить во вложенный массив по ключу
$users['ivan']['orders'][] = 1001;

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

Практика: собрать данные

  1. Начните с пустого массива $result = [];.
  2. В цикле добавляйте элементы: $result[] = $row;.
  3. Для ассоциативных — задавайте ключи: $result[$id] = $row;.
  4. Объединяйте части через array_merge().
  5. Проверьте структуру через print_r перед выводом.
CSS
$result = [];
foreach ($rows as $row) {
    $result[$row['id']] = $row['title'];
}

Частые ошибки: причина → решение

Симптом Причина Решение
Ключ «пропал» array_merge перезаписал проверить порядок аргументов
Ошибка «не массив» переменная не инициализирована начать с $arr = []
Индексы «сбились» array_unshift пересчитал учитывать при работе с ключами
Два одинаковых элемента не проверяли наличие in_array() перед добавлением

Проверьте себя

Чек-лист




Как добавить элемент в конец массива?




Чем array_merge опасен для конфигов?




Вопросы и ответы

Для одного элемента $arr[] = $v чуть быстрее и короче. array_push() удобен для нескольких значений сразу.

$arr[] = $innerArray; — вложенный массив добавится как один элемент. Если нужно «разложить» его элементы — используйте array_merge().

Проверьте in_array($v, $arr, true) перед добавлением или используйте ключи массива как «множество».

Оператором +: $a + $b — ключи первого массива имеют приоритет, значения не перезаписываются.

Итоги

  • В конец — $arr[] = $v; несколько — array_push().
  • По ключу — $arr['key'] = $v, включая вложенные массивы.
  • В начало — array_unshift() (пересчитывает индексы).
  • array_merge() перезаписывает по строковым ключам, оператор + — нет.
Поделиться: ВКонтакте Telegram WhatsApp Одноклассники Viber Мой Мир

Комментарии

Пока комментариев нет — будьте первым, кто поделится мнением.

Оставить комментарий

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

Получите консультацию нашего маркетолога

Изучит ваш проект, подберет подходящие услуги и тарифы

Получите бесплатный аудит

Наш специалист сделает базовый аудит вашего проекта и предложит персональные предложения.

Закажите услугу Каталог морепродуктов

Наш специалист свяжется с вами в ближайшее время и уточнит детали

Закажите адаптивный сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт лендинг

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт каталог

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите интернет-магазин

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите веб-приложение

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите тариф Аутсорс

Стоимость от 150 000 ₽

Закажите тариф Магазин

Стоимость 90 000 ₽

Закажите тариф Классический

Стоимость 60 000 ₽

Закажите тариф Эконом

Стоимость 40 000 ₽

Закажите SEO продвижение

Наш специалист свяжется с вами, проведет анализ, предложит стоимость