Funkce array_splice
Funkce array_splice odstraní a vrátí
část pole. Přitom odstraněná část
zmizí z pole. Místo odstraněné části
lze vkládat nové prvky.
Prvním parametrem se určuje pole pro rozdělení. Druhým parametrem se určuje, od kterého prvku začít s odstraněním, a třetím - kolik prvků odstranit. Třetí parametr může být záporný - v tomto případě začne počítání od konce (-1 - poslední prvek, -2 - předposlední atd.). Třetí parametr lze vůbec neuvedat - v tomto případě bude pole odstraněno až do samého konce.
V posledním volitelném parametru lze zadat pole prvků, které budou vloženy namísto odstraněných.
Syntaxe
array_splice(array &$array, int $offset, ?int $length = null, mixed $replacement = []): array
Příklad
Odstraníme prvky od prvního (má
číslo 0), 3 kusy:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 0, 3);
var_dump($res);
?>
Výsledek provedení kódu:
['a', 'b', 'c']
Přitom pole $arr bude vypadat takto:
['d', 'e']
Příklad
Odstraníme prvky od druhého (má
číslo 1), 3 kusy:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 3);
var_dump($res);
?>
Výsledek provedení kódu:
['b', 'c', 'd']
Přitom pole $arr bude vypadat takto:
['a', 'e']
Příklad
Odstraníme prvky od druhého (má číslo 1) do konce pole. K tomu třetí parametr nepíšeme:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1);
var_dump($res);
?>
Výsledek provedení kódu:
['b', 'c', 'd', 'e']
Přitom pole $arr bude vypadat takto:
['a']
Příklad
Odstraníme prvky od předposledního,
2 kusy. K tomu druhý parametr
nastavíme na -2 (pozice předposledního
prvku):
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, -2, 2);
var_dump($res);
?>
Výsledek provedení kódu:
['d', 'e']
Přitom pole $arr bude vypadat takto:
['a', 'b', 'c']
Příklad
Odstraníme prvky od druhého (má
číslo 1), 2 kusy, a namísto nich vložíme
prvky 1, 2, 3:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 2, [1, 2, 3]);
var_dump($res);
?>
Výsledek provedení kódu:
['b', 'c']
Přitom pole $arr bude vypadat takto:
['a', 1, 2, 3, 'd', 'e']
Příklad
Nebudeme nic odstranňovat,
a pouze vložíme prvky 1, 2,
3 začínaje na pozici 1. K
tomu se třetí parametr nastaví na nulu:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 0, [1, 2, 3]);
var_dump($res);
?>
Výsledek provedení kódu:
[]
Přitom pole $arr bude vypadat takto:
['a', 1, 2, 3, 'b', 'c', 'd', 'e']
Viz také
-
funkci
array_slice,
která odstraní část pole, aniž by přitom měnila samotné pole