Az array_splice függvény
Az array_splice függvény kivág és visszaad
egy tömb részét. Eközben a kivágott rész
eltűnik a tömbből. A kivágott rész helyére
új elemek szúrhatók be.
Az első paraméterben a felvágandó tömb van megadva. A második paraméterben azt adjuk meg, hogy melyik elemtől kezdődjenek a kivágás, a harmadik pedig azt, hogy hány elemet vágjunk ki. A harmadik paraméter lehet negatív - ebben az esetben a végétől kezdődik a számlálás (-1 - az utolsó elem, -2 - az utolsó előtti stb.). A harmadik paraméter egyáltalán nem is adható meg - ebben az esetben a tömb a végéig ki lesz vágva.
Az utolsó, nem kötelező paraméterben meghatározhatunk egy olyan elemtömböt, amely a törölt elemek helyére kerül beillesztésre.
Szintaxis
array_splice(array &$array, int $offset, ?int $length = null, mixed $replacement = []): array
Példa
Vágjuk ki az elemeket az elsőtől (sorszáma
0), 3 darabot:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 0, 3);
var_dump($res);
?>
A kód végrehajtásának eredménye:
['a', 'b', 'c']
Eközben a $arr tömb így fog kinézni:
['d', 'e']
Példa
Vágjuk ki az elemeket a másodiktól (sorszáma
1), 3 darabot:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 3);
var_dump($res);
?>
A kód végrehajtásának eredménye:
['b', 'c', 'd']
Eközben a $arr tömb így fog kinézni:
['a', 'e']
Példa
Vágjuk ki az elemeket a másodiktól (sorszáma 1) a tömb végéig. Ehhez a harmadik paramétert nem írjuk:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1);
var_dump($res);
?>
A kód végrehajtásának eredménye:
['b', 'c', 'd', 'e']
Eközben a $arr tömb így fog kinézni:
['a']
Példa
Vágjuk ki az elemeket az utolsó előttitől,
2 darabot. Ehhez a második paraméter
legyen -2 (az utolsó előtti elem
pozíciója):
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, -2, 2);
var_dump($res);
?>
A kód végrehajtásának eredménye:
['d', 'e']
Eközben a $arr tömb így fog kinézni:
['a', 'b', 'c']
Példa
Vágjuk ki az elemeket a másodiktól (sorszáma
1), 2 darabot, és a helyükre tegyük
az 1, 2, 3 elemeket:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 2, [1, 2, 3]);
var_dump($res);
?>
A kód végrehajtásának eredménye:
['b', 'c']
Eközben a $arr tömb így fog kinézni:
['a', 1, 2, 3, 'd', 'e']
Példa
Ne vágjunk ki egyáltalán semmit,
csak szúrjunk be 1, 2,
3 elemeket az 1 pozíciótól kezdve. Ehhez
a harmadik paramétert nullára kell állítani:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 0, [1, 2, 3]);
var_dump($res);
?>
A kód végrehajtásának eredménye:
[]
Eközben a $arr tömb így fog kinézni:
['a', 1, 2, 3, 'b', 'c', 'd', 'e']
Lásd még
-
a
array_slicefüggvényt,
amely kivág egy tömb részt anélkül, hogy megváltoztatná magát a tömböt