(PHP 4, PHP 5, PHP 7)
array_splice — Remove a portion of the array and replace it with something else
&$input
, int $offset
[, int $length
= 0
[, mixed $replacement
= array()
]] )
Removes the elements designated by offset
and
length
from the input
array,
and replaces them with the elements of the
replacement
array, if supplied.
Note that numeric keys in input
are not preserved.
Note: If
replacement
is not an array, it will be typecast to one (i.e.(array) $replacement
). This may result in unexpected behavior when using an object orNULL
replacement
.
input
The input array.
offset
If offset
is positive then the start of removed
portion is at that offset from the beginning of the
input
array. If offset
is negative then it starts that far from the end of the
input
array.
length
If length
is omitted, removes everything
from offset
to the end of the array. If
length
is specified and is positive, then
that many elements will be removed. If
length
is specified and is negative then
the end of the removed portion will be that many elements from
the end of the array. If length
is
specified and is zero, no elements will be removed.
Tip: to remove everything from
offset
to the end of the array when
replacement
is also specified, use
count($input) for
length
.
replacement
If replacement
array is specified, then the
removed elements are replaced with elements from this array.
If offset
and length
are such that nothing is removed, then the elements from the
replacement
array are inserted in the place
specified by the offset
. Note that keys in
replacement array are not preserved.
If replacement
is just one element it is
not necessary to put array()
around it, unless the element is an array itself, an object or NULL
.
Returns an array consisting of the extracted elements.
Example #1 array_splice() examples
<?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");
?>
Example #2 array_splice() examples
The following statements change the values of $input the same way:
<?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; // for arrays where key equals offset
array_splice($input, $x, 1, $y);
?>