(PHP 4, PHP 5, PHP 7)
array_splice — Удаляет часть массива и заменяет её чем-нибудь ещё
&$input
, int $offset
[, int $length
= count($input)
[, mixed $replacement
= array()
]] ) : array
Удаляет length
элементов, расположенных на расстоянии
offset
из массива input
, и заменяет их
элементами массива replacement
, если он передан в качестве
параметра.
Замечание:
Обратите внимание, что числовые ключи в массиве
input
не сохраняются.
Замечание: Если параметр
replacement
не является массивом, он будет преобразован к нему (то есть(array) $parameter
). Это может привести к неожиданным результатам при использовании объекта илиNULL
в качествеreplacement
.
input
Входной массив.
offset
Если параметр offset
положителеный, будут удалены элементы,
находящиеся на расстоянии offset от начала input
.
Если offset
отрицателеный, будут удалены
элементы, находящиеся на расстоянии offset от конца input
.
length
Если параметр length
опущен, будут удалены все элементы
начиная с позиции offset
и до конца массива.
Если length
указан и он положителен, то будет удалено именно
столько элементов.
Если параметр length
отрицателен, то
конец удаляемой части элементов будет отстоять на это количество от конца массива.
Если length
задан как 0, ничего удалено не будет.
Совет: для того, чтобы удалить все элементы массива, начиная с позиции
offset
до конца массива, в то время как указан параметр
replacement
, используйте count($input)
в
качестве параметра length
.
replacement
Если передан массив replacement
в качестве аргумента, тогда
удалённые элементы будут заменены элементами этого массива.
Если параметры offset
и length
таковы, что из исходного массива не будет ничего удалено, тогда элементы массива
replacement
будут вставлены на позицию
offset
.
Замечание:
Обратите внимание, что ключи массива
replacement
не сохраняются.
Совет: если replacement
является просто
одним элементом, нет необходимости заключать его в array()
или квадратные скобки,
если только этот элемент сам не является массивом, объектом или NULL
.
Возвращает массив, содержащий удалённые элементы.
Пример #1 Примеры использования array_splice()
<?php
$input = array("red", "green", "blue", "yellow");
array_splice($input, 2);
var_dump($input);
$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, -1);
var_dump($input);
$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, count($input), "orange");
var_dump($input);
$input = array("red", "green", "blue", "yellow");
array_splice($input, -1, 1, array("black", "maroon"));
var_dump($input);
?>
Результат выполнения данного примера:
array(2) { [0]=> string(3) "red" [1]=> string(5) "green" } array(2) { [0]=> string(3) "red" [1]=> string(6) "yellow" } array(2) { [0]=> string(3) "red" [1]=> string(6) "orange" } array(5) { [0]=> string(3) "red" [1]=> string(5) "green" [2]=> string(4) "blue" [3]=> string(5) "black" [4]=> string(6) "maroon" }
Пример #2 Примеры использования array_splice()
Следующие выражения эквивалентны:
<?php
// добавить два элемента в $input
array_push($input, $x, $y);
array_splice($input, count($input), 0, array($x, $y));
// удалить последний элемент из $input
array_pop($input);
array_splice($input, -1);
// удалить первый элемент из $input
array_shift($input);
array_splice($input, 0, 1);
// добавить элемент в начало $input
array_unshift($input, $x, $y);
array_splice($input, 0, 0, array($x, $y));
// заменить в $input элемент с индексом $x на значение $y
$input[$x] = $y; // для массивов, где ключ равен смещению
array_splice($input, $x, 1, $y);
?>