Az array_splice() eltávolítja az input tömb offset és length paraméterek által meghatározott sorozatát, és helyébe - ha meg van adva - a replacement tömböt illeszti. Az eltávolított elemek tömbjével tér vissza.
Pozitív offset esetén, a törlendő elemsorozat ennyiedik sorszámú elemtől kezdődik, negatív offset esetén az array tömb végétől visszafelé számolva ennyiedik elemtől kezdődik.
Ha nincs megadva a length, akkor az offset által meghatározott ponttól kezdve a tömb végéig minden elemet eltávolít. Ha a length meg van adva és pozitív, akkor ennyi darab elem kerül törlésre. Negatív length esetén az array tömb végétől visszafelé ennyiedik elemig törlődik minden. Jótanácsként: ha a tömb végéig kell mindent lecserélni a replacement-re, akkor a count($input)-ot kell a length paraméterben megadni.
Ha a replacement tömb is meg van adva, akkor a törölt elemek helyére ennek a tömbnek az elemei kerülnek. Ha offset és length alapján nem történt törlés, akkor a replacement elemei az offset által mutatott helyre kerülnek beillesztésre. Jótanácsként: ha a replacement egyelemű, akkor nem szükséges array()-t használni, kivéve ha ez az egy elem maga is tömb kell legyen.
Az alábbi utasítások a $input étékét ugyanúgy módosítják:
Táblázat 1. array_splice() megfelelők
array_push($bemenet, $x, $y) | array_splice($bemenet, count($bemenet), 0, array($x, $y)) |
array_pop($bemenet) | array_splice($bemenet, -1) |
array_shift($bemenet) | array_splice($bemenet, 0, 1) |
array_unshift($bemenet, $x, $y) | array_splice($bemenet, 0, 0, array($x, $y)) |
$bemenet[$x] = $y // olyan tömbök esetében ahol a kulcs egyenlő az elem sorszámával | array_splice($bemenet, $x, 1, $y) |
A törölt elemek tömbjével tér vissza a függvény.
Lásd még az array_slice(), unset() és array_merge() függvényeket!