Funkcja array_slice
Funkcja array_slice wycina i zwraca
część tablicy. Przy tym sama tablica nie ulega zmianie.
Pierwszym parametrem wskazuje się tablicę do
pocięcia. Drugim parametrem wskazuje się,
od którego elementu rozpocząć wycinanie, a trzecim
- ile elementów wyciąć. Drugi 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.
Ostatni opcjonalny parametr reguluje
czy zachować klucze przy wycinaniu, true -
zachować, false (domyślnie) - nie zachować.
Klucze tekstowe są zachowywane, niezależnie od
wartości tego parametru.
Składnia
array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array
Przykład
Wytnijmy elementy od pierwszego (ma
numer 0), 3 sztuki:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_slice($arr, 0, 3);
var_dump($res);
?>
Wynik wykonania kodu:
['a', 'b', 'c']
Przykład
Wytnijmy elementy od drugiego (ma
numer 1), 3 sztuki:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_slice($arr, 1, 3);
var_dump($res);
?>
Wynik wykonania kodu:
['b', 'c', 'd']
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_slice($arr, 1);
var_dump($res);
?>
Wynik wykonania kodu:
['b', 'c', 'd', 'e']
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_slice($arr, -2, 2);
var_dump($res);
?>
Wynik wykonania kodu:
['d', 'e']
Przykład
Domyślnie tablica nie zachowuje kluczy przy wycinaniu:
<?php
$arr = [1 => 'a', 2 => 'b', 3 => 'c', 4 => 'd', 5 => 'c'];
$res = array_slice($arr, 0, 3);
var_dump($res);
?>
Wynik wykonania kodu:
['a', 'b', 'c']
Przykład
Sprawmy, aby klucze zostały zachowane. W tym celu ostatni parametr ustawimy jako true:
<?php
$arr = [1 => 'a', 2 => 'b', 3 => 'c'];
$res = array_slice($arr, 0, 3, true);
var_dump($res);
?>
Wynik wykonania kodu:
[1 => 'a', 2 => 'b', 3 => 'c']
Przykład
Klucze tekstowe są zachowywane przy wycinaniu:
<?php
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
$res = array_slice($arr, 0, 3);
var_dump($res);
?>
Wynik wykonania kodu:
['a' => 1, 'b' => 2, 'c' => 3]
Zobacz też
-
funkcję
array_splice,
która wycina część tablicy, zmieniając przy tym samą tablicę