Удобное руководство по вставке массивов в массивы PHP: раскрываем возможности сращивания!

Массивы — это важная структура данных в PHP, позволяющая хранить коллекции значений и манипулировать ими. Одной из распространенных задач является вставка массива в другой массив, чего можно достичь с помощью функции splice. В этой статье мы рассмотрим различные методы выполнения этой задачи, используя разговорный язык и попутно предоставляя практические примеры кода.

Метод 1: использование функции array_splice()
Функция array_splice() — это универсальный инструмент для вставки элементов в массив по указанному индексу. Чтобы вставить целый массив в другой массив, мы можем передать целевой массив, начальный индекс, 0 в качестве количества удаляемых элементов и массив, который нужно вставить, в качестве аргументов. Вот пример:

$targetArray = [1, 2, 3, 4, 5];
$arrayToInsert = ['a', 'b', 'c'];
array_splice($targetArray, 2, 0, $arrayToInsert);
print_r($targetArray);

Выход:

Array
(
    [0] => 1
    [1] => 2
    [2] => a
    [3] => b
    [4] => c
    [5] => 3
    [6] => 4
    [7] => 5
)

Метод 2: использование оператора расширения
Начиная с PHP 7.4 оператор расширения (...) можно использовать для объединения массивов. Распаковав массив, который нужно вставить, и объединив его с целевым массивом, мы можем добиться вставки массива. Вот пример:

$targetArray = [1, 2, 3, 4, 5];
$arrayToInsert = ['a', 'b', 'c'];
$targetArray = [...array_slice($targetArray, 0, 2), ...$arrayToInsert, ...array_slice($targetArray, 2)];
print_r($targetArray);

Выход:

Array
(
    [0] => 1
    [1] => 2
    [2] => a
    [3] => b
    [4] => c
    [5] => 3
    [6] => 4
    [7] => 5
)

Метод 3: использование комбинации array_splice()и array_merge().
Альтернативный подход — использовать одновременно array_splice()и array_merge()функции. Сначала мы удаляем желаемое количество элементов из целевого массива, начиная с указанного индекса. Затем мы объединяем полученный массив с массивом, который нужно вставить, используя array_merge(). Вот пример:

$targetArray = [1, 2, 3, 4, 5];
$arrayToInsert = ['a', 'b', 'c'];
array_splice($targetArray, 2);
$targetArray = array_merge($targetArray, $arrayToInsert);
print_r($targetArray);

Выход:

Array
(
    [0] => 1
    [1] => 2
    [2] => a
    [3] => b
    [4] => c
    [5] => 3
    [6] => 4
    [7] => 5
)

В этой статье мы рассмотрели несколько методов вставки массива в другой массив в PHP. Используя возможности array_splice(), оператора расширения, и array_merge(), мы можем легко выполнить эту задачу. Предпочитаете ли вы простоту array_splice(), элегантность оператора расширения или комбинированный подход, теперь в вашем распоряжении несколько методов. Приятного кодирования!