Funkcja array_splice
Funkcja array_splice wycina i zwraca
część tablicy. Przy tym wycięta część
znika z tablicy. W miejsce wyciętej części
można wstawiać nowe elementy.
Pierwszym parametrem wskazuje się tablicę do przecięcia. Drugim parametrem wskazuje się, od którego elementu rozpocząć wycinanie, a trzecim - ile elementów wyciąć. Trzeci parametr może być ujemny - w tym przypadku odliczanie rozpocznie się od końca (-1 - ostatni element, -2 - przedostatni i tak dalej). Trzeciego parametru można w ogóle nie wskazywać - w tym przypadku tablica zostanie wycięta do samego końca.
W ostatnim parametrze opcjonalnym można zadać tablicę elementów, które będą wstawione w miejsce usuniętych.
Składnia
array_splice(array &$array, int $offset, ?int $length = null, mixed $replacement = []): array
Przykład
Wytnijmy elementy od pierwszego (ma
numer 0), 3 sztuki:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 0, 3);
var_dump($res);
?>
Wynik wykonania kodu:
['a', 'b', 'c']
Przy tym tablica $arr będzie wyglądać tak:
['d', 'e']
Przykład
Wytnijmy elementy od drugiego (ma
numer 1), 3 sztuki:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 3);
var_dump($res);
?>
Wynik wykonania kodu:
['b', 'c', 'd']
Przy tym tablica $arr będzie wyglądać tak:
['a', 'e']
Przykład
Wytnijmy elementy od drugiego (ma numer 1) do końca tablicy. W tym celu trzeciego parametru nie piszemy:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1);
var_dump($res);
?>
Wynik wykonania kodu:
['b', 'c', 'd', 'e']
Przy tym tablica $arr będzie wyglądać tak:
['a']
Przykład
Wytnijmy elementy od przedostatniego,
2 sztuki. W tym celu drugi parametr
ustawimy na -2 (pozycja przedostatniego
elementu):
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, -2, 2);
var_dump($res);
?>
Wynik wykonania kodu:
['d', 'e']
Przy tym tablica $arr będzie wyglądać tak:
['a', 'b', 'c']
Przykład
Wytnijmy elementy od drugiego (ma
numer 1), 2 sztuki, a w zamian wstawmy
elementy 1, 2, 3:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 2, [1, 2, 3]);
var_dump($res);
?>
Wynik wykonania kodu:
['b', 'c']
Przy tym tablica $arr będzie wyglądać tak:
['a', 1, 2, 3, 'd', 'e']
Przykład
Nie wycinajmy niczego,
a po prostu wstawmy elementy 1, 2,
3 zaczynając od pozycji 1. W tym
celu trzeci parametr ustawiamy na zero:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 0, [1, 2, 3]);
var_dump($res);
?>
Wynik wykonania kodu:
[]
Przy tym tablica $arr będzie wyglądać tak:
['a', 1, 2, 3, 'b', 'c', 'd', 'e']
Zobacz też
-
funkcję
array_slice,
która wycina część tablicy, nie zmieniając przy tym samej tablicy