# Функция array_splice

Функция `array_splice` отрезает и возвращает часть массива. При этом отрезанная часть исчезает из массива. Вместо отрезанной части можно вставлять новые элементы.

Первым параметром указывается массив для разрезания. Вторым параметром указывается, с какого элемента начинать отрезание, а третьим - сколько элементов отрезать. Третий параметр может быть отрицательным - в этом случае отсчет начнется с конца (-1 - последний элемент, -2 - предпоследний и так далее). Третий параметр можно вообще не указывать - в этом случае массив отрежется до самого конца.

В последнем необязательным параметре можно задавать массив элементов, которые будут вставлены взамен удаленных.

## Синтаксис

`array_splice(массив, откуда отрезать, [сколько], [вставить взамен]);`

## Пример

Давайте вырежем элементы с первого (имеет номер 0), `3` штуки:

`<?php $arr = ['a', 'b', 'c', 'd', 'e']; $result = array_splice($arr, 0, 3); var_dump($result); ?>`

Результат выполнения кода:

`['a', 'b', 'c']`

При этом массив $arr станет выглядеть так:

`['d', 'e']`

## Пример

Давайте вырежем элементы со второго (имеет номер 1), `3` штуки:

`<?php $arr = ['a', 'b', 'c', 'd', 'e']; $result = array_splice($arr, 1, 3); var_dump($result); ?>`

Результат выполнения кода:

`['b', 'c', 'd']`

При этом массив $arr станет выглядеть так:

`['a', 'e']`

## Пример

Давайте вырежем элементы со второго (имеет номер 1) до конца массива. Для этого третий параметр не пишем:

`<?php $arr = ['a', 'b', 'c', 'd', 'e']; $result = array_splice($arr, 1); var_dump($result); ?>`

Результат выполнения кода:

`['b', 'c', 'd', 'e']`

При этом массив $arr станет выглядеть так:

`['a']`

## Пример

Давайте вырежем элементы с предпоследнего, `2` штуки. Для этого второй параметр установим в `-2` (позиция предпоследнего элемента):

`<?php $arr = ['a', 'b', 'c', 'd', 'e']; $result = array_splice($arr, -2, 2); var_dump($result); ?>`

Результат выполнения кода:

`['d', 'e']`

При этом массив $arr станет выглядеть так:

`['a', 'b', 'c']`

## Пример

Давайте вырежем элементы со второго (имеет номер 1), `2` штуки, а в замен вставим элементы `1`, `2`, `3`:

`<?php $arr = ['a', 'b', 'c', 'd', 'e']; $result = array_splice($arr, 1, 2, [1, 2, 3]); var_dump($result); ?>`

Результат выполнения кода:

`['b', 'c']`

При этом массив $arr станет выглядеть так:

`['a', 1, 2, 3, 'd', 'e']`

## Пример

Давайте вообще ничего не будем вырезать, а просто вставим элементы `1`, `2`, `3` начиная с позиции `1`. Для этого третий параметр ставится в ноль:

`<?php $arr = ['a', 'b', 'c', 'd', 'e']; $result = array_splice($arr, 1, 0, [1, 2, 3]); var_dump($result); ?>`

Результат выполнения кода:

`[]`

При этом массив $arr станет выглядеть так:

`['a', 1, 2, 3, 'b', 'c', 'd', 'e']`

## Смотрите также

- функцию `array_slice`,
  которая отрезает часть массива, не изменяя при этом сам массив

↑