(PHP 4, PHP 5)

array_splice — Удалить последовательность элементов массива и заменить её другой последовательностью

Оисание

array array_splice ( array $&input, int $offset [, int $length [, array $ replacement ]] )

array_splice() удаляет length элементов, расположенных на растоянии offset от начала массива input, и заменяет их элементами массива replacement, если он передан в качестве параметра. Возвращает массив выбранных элементов.

Если параметр offset положителен, будут удалены элементы, находящиеся на расстоянии offset от начала array. Если offset отрицателен, будут удалены элементы, находящиеся на расстоянии offset от конца array.

Если параметр length опущен, будут удалены все элементы начиная с позиции offset и до конца массива. Если передан положительный параметр length, будет удалено length элементов. Если передан отрицательный параметр length, будут удалены элементы исходного массива, начиная с позиции offset и заканчивая позицией, отстоящей на length элементов от конца array. Совет: для того, чтобы удалить все элементы массива, начиная с позиции offset в то время как указан параметр replacement, используйте count($input) в качестве параметра length.

Если передан массив replacement в качестве аргумента, тогда удалённые элементы будут заменены элементами этого массива. Если параметры offset и length таковы, что из исходного массива не будет ничего удалено, тогда элементы массива replacement будут вставлены на позицию offset. Обратите внимание, что ключи массива replacement не сохраняются. Совет: если вам нужно вставить один элемент в массив, нет необходимости заключать его в вызов функции array(), если только этот элемент не является массивом.

Последующие выражения произведут одинаковые изменения в массиве $input:

Эквиваленты array_splice()

array_push($input, $x, $y) array_splice($input, count($input), 0, array($x, $y))
array_pop($input) array_splice($input, -1)
array_shift($input) array_splice($input, 0, 1)
array_unshift($input, $x, $y) array_splice($input, 0, 0, array($x, $y))
$input[$x] = $y // в случае, если key равен offset array_splice($input, $x, 1, $y)

Возвращает массив, содержащий удалённые элементы.


Примеры использования array_splice()

<?php
$input
= array("red", "green", "blue", "yellow");
array_splice($input, 2);
// $input is now array("red", "green")

$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, -1);
// $input is now array("red", "yellow")

$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, count($input), "orange");
// $input is now array("red", "orange")

$input = array("red", "green", "blue", "yellow");
array_splice($input, -1, 1, array("black", "maroon"));
// $input is now array("red", "green",
//          "blue", "black", "maroon")

$input = array("red", "green", "blue", "yellow");
array_splice($input, 3, 0, "purple");
// $input is now array("red", "green",
//          "blue", "purple", "yellow");
?>

См. также array_slice(), unset() и array_merge().