(PHP 4, PHP 5)
array_splice — Удаляет часть массива и заменяет её чем-нибудь ещё
Удаляет length
элементов, расположенных
на расстоянии offset
из массива
input
, и заменяет их элементами
массива replacement
, если он передан в качестве параметра.
Обратите внимание, что числовые ключи в массиве input
не сохраняются.
Замечание: Если параметр
replacement
не является массивом, он будет преобразован к нему (т.е.(array) $parameter
). Это может привести к не ожиданным результатам при использовании объекта илиNULL
в качествеreplacement
.
input
Входной массив.
offset
Если параметр offset
положителен,
будут удалены элементы, находящиеся на расстоянии offset
от начала input
. Если
offset
отрицателен, будут удалены
элементы, находящиеся на расстоянии offset от конца
input
.
length
Если параметр length
опущен, будут удалены все элементы
начиная с позиции offset
и до конца массива.
Если length
указан и он положителен, то
будет удалено именно столько элементов.
Если же параметр length
отрицателен, то
конец удаляемой части элементов будет отстоять на это количество
от конца массива.
Совет: для того, чтобы удалить все элементы массива, начиная с позиции
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);
// $input теперь array("red", "green")
$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, -1);
// $input теперь array("red", "yellow")
$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, count($input), "orange");
// $input теперь array("red", "orange")
$input = array("red", "green", "blue", "yellow");
array_splice($input, -1, 1, array("black", "maroon"));
// $input теперь array("red", "green", "blue", "black", "maroon")
$input = array("red", "green", "blue", "yellow");
array_splice($input, 3, 0, "purple");
// $input теперь array("red", "green", "blue", "purple", "yellow");
?>
Пример #2 array_splice() examples
Следующие выражения одинаково меняют значения массива $input:
<?php
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; // для массивов, где ключ равен смещению
array_splice($input, $x, 1, $y);
?>