Функция 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
,
которая отрезает часть массива, не изменяя при этом сам массив