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

Функция PHP: array_merge_recursive

Функция array_merge_recursive в PHP — мощный инструмент для объединения массивов с сохранением пар ключ-значение. Она позволяет объединять массивы любой вложенности и обрабатывать массивы с пересекающимися ключами, объединяя значения таких ключей в подмассивы.

Синтаксис

php
array_merge_recursive(array $array1, array ...$arrays): array

Параметры

  • array1: Первый входной массив.
  • ...$arrays: Один или несколько дополнительных массивов для объединения.

Возвращаемое значение

Возвращает результирующий объединённый массив.

Как работает array_merge_recursive?

Функция array_merge_recursive принимает два или более массива в качестве аргументов и возвращает новый массив, являющийся результатом объединения входных массивов. Если входные массивы имеют пересекающиеся ключи, значения этих ключей объединяются в подмассивы, а не перезаписываются значениями из последующих массивов.

Примечание: В отличие от array_merge(), которая перезаписывает значения для пересекающихся строковых ключей и переиндексирует числовые ключи, array_merge_recursive() объединяет пересекающиеся строковые ключи во вложенные массивы, сохраняя числовые ключи как отдельные элементы.

Вот пример работы функции array_merge_recursive:

Пример функции array_merge_recursive на PHP

php
<?php

$array1 = array("color" => array("favorite" => "red"), 5);
$array2 = array(10, "color" => array("favorite" => "green", "blue"));
$result = array_merge_recursive($array1, $array2);
print_r($result);

?>

Результат выполнения этого кода будет следующим:


console
Array
(
    [color] => Array
        (
            [favorite] => Array
                (
                    [0] => red
                    [1] => green
                )
            [0] => blue
        )
    [0] => 5
    [1] => 10
)

Как видно, функция array_merge_recursive объединила пересекающиеся ключи во входных массивах в подмассивы.

Преимущества использования array_merge_recursive

Использование функции array_merge_recursive в PHP имеет несколько преимуществ:

  1. Объединение массивов с пересекающимися ключами: функция array_merge_recursive позволяет объединять массивы с пересекающимися ключами без перезаписи их значений. Это полезно, когда необходимо сохранить значения всех ключей во входных массивах.
  2. Объединение массивов любой вложенности: функция array_merge_recursive работает с массивами любой глубины, что делает её гибким решением для объединения массивов любой сложности.
  3. Простота использования: функция array_merge_recursive интуитивно понятна и проста в применении, что делает её доступной для разработчиков любого уровня подготовки.

Заключение

Функция array_merge_recursive в PHP — полезный инструмент для объединения массивов с сохранением пар ключ-значение. Независимо от вашего уровня подготовки, эта функция отлично подходит для объединения массивов любой вложенности и сложности.

Практика

Что делает функция array_merge_recursive() в PHP?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.