(PHP 4, PHP 5, PHP 7)
array_splice — Entfernt einen Teil eines Arrays und ersetzt ihn durch etwas anderes
&$input
, int $offset
[, int $length
= count($input)
[, mixed $replacement
= array()
]] ) : array
Entfernt die durch offset
und
length
angegebenen Elemente aus dem Array
input
, und ersetzt diese durch die Elemente
des Arrays replacement
, wenn angegeben.
Hinweis:
Numerische Schlüssel in
input
werden nicht erhalten.
Hinweis: Wenn
replacement
kein Array ist, wird es in ein Array umgewandelt (dies entspricht(array) $parameter
). Dies kann zu unerwartetem Verhalten führen, wennreplacement
ein Objekt oderNULL
ist.
input
Das Eingabe-Array.
offset
Ist offset
positiv, beginnt der zu
entfernende Bereich bei diesem Offset vom Anfang des Arrays
input
.
Ist offset
negativ, beginnt der zu entfernende Bereich so viele Elemente
vor dem Ende des Arrays input
.
length
Ist length
nicht angegeben, wird alles
von offset
bis zum Ende des Arrays
entfernt.
Ist length
angegeben und
positiv, werden so viele Elemente entfernt.
Ist length
angegeben und negativ, so ist das
Ende des entfernten Bereichs so viele Elemente vor dem Ende des
Array.
Wenn length
angegeben und 0 ist, werden
keine Elemente entfernt.
Um alles von offset
bis zum
Ende des Arrays zu entfernen, wenn
replacement
ebenfalls angegeben ist,
verwenden Sie count($input)
als
length
.
replacement
Ist das Array replacement
angegeben,
werden die entfernten Elemente durch die Elemente dieses Arrays
ersetzt.
Sind offset
und
length
so angegeben, dass nichts entfernt
wird, werden die Elemente von replacement
an der von offset
spezifizierten Stelle
eingefügt.
Hinweis:
Schlüssel werden bei der Ersetzung nicht erhalten.
Wenn replacement
nur aus einem Element
besteht, ist es nicht notwendig, array()
oder eckige Klammern
anzugeben, sofern das Element nicht selbst ein Array, ein Objekt
oder NULL
ist.
Gibt ein Array zurück, das aus den ausgeschnittenen Elementen besteht.
Beispiel #1 array_splice()-Beispiele
<?php
$input = array("rot", "grün", "blau", "gelb");
array_splice($input, 2);
var_dump($input);
$input = array("rot", "grün", "blau", "gelb");
array_splice($input, 1, -1);
var_dump($input);
$input = array("rot", "grün", "blau", "gelb");
array_splice($input, 1, count($input), "orange");
var_dump($input);
$input = array("rot", "grün", "blau", "gelb");
array_splice($input, -1, 1, array("schwarz", "braun"));
var_dump($input);
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
array(2) { [0]=> string(3) "rot" [1]=> string(5) "grün" } array(2) { [0]=> string(3) "rot" [1]=> string(4) "gelb" } array(2) { [0]=> string(3) "rot" [1]=> string(6) "orange" } array(5) { [0]=> string(3) "rot" [1]=> string(5) "grün" [2]=> string(4) "blau" [3]=> string(7) "schwarz" [4]=> string(5) "braun" }
Beispiel #2 array_splice()-Beispiele zu gleichwertigen Anweisungen
Die folgenden Anweisungen sind gleichwertig:
<?php
// füge zwei Elemente an $input an
array_push($input, $x, $y);
array_splice($input, count($input), 0, array($x, $y));
// entferne das letzte Element von $input
array_pop($input);
array_splice($input, -1);
// entferne das erste Element von $input
array_shift($input);
array_splice($input, 0, 1);
// füge ein Element am Anfang von $input ein
array_unshift($input, $x, $y);
array_splice($input, 0, 0, array($x, $y));
// ersetze den Wert von $input am Index $x
$input[$x] = $y; // für Arrays, bei denen der Schlüssel dem Offset entspricht
array_splice($input, $x, 1, $y);
?>