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

phparray_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<?php
  $arr = ['a', 'b', 'c', 'd', 'e'];
  
  $res = array_slice($arr, 0, 3);
  var_dump($res);
?>

Wynik wykonania kodu:

php['a', 'b', 'c']

Przykład

Wytnijmy elementy od drugiego (ma numer 1), 3 sztuki:

php<?php
  $arr = ['a', 'b', 'c', 'd', 'e'];
  
  $res = array_slice($arr, 1, 3);
  var_dump($res);
?>

Wynik wykonania kodu:

php['b', 'c', 'd']

Przykład

Wytnijmy elementy od drugiego (ma numer 1) do końca tablicy. W tym celu trzeciego parametru nie piszemy:

php<?php
  $arr = ['a', 'b', 'c', 'd', 'e'];
  
  $res = array_slice($arr, 1);
  var_dump($res);
?>

Wynik wykonania kodu:

php['b', 'c', 'd', 'e']

Przykład

Wytnijmy elementy od przedostatniego, 2 sztuki. W tym celu drugi parametr ustawimy na -2 (pozycja przedostatniego elementu):

php<?php
  $arr = ['a', 'b', 'c', 'd', 'e'];
  
  $res = array_slice($arr, -2, 2);
  var_dump($res);
?>

Wynik wykonania kodu:

php['d', 'e']

Przykład

Domyślnie tablica nie zachowuje kluczy przy wycinaniu:

php<?php
  $arr = [1 => 'a', 2 => 'b', 3 => 'c', 4 => 'd', 5 => 'c'];
  
  $res = array_slice($arr, 0, 3);
  var_dump($res);
?>

Wynik wykonania kodu:

php['a', 'b', 'c']

Przykład

Sprawmy, aby klucze zostały zachowane. W tym celu ostatni parametr ustawimy jako true:

php<?php
  $arr = [1 => 'a', 2 => 'b', 3 => 'c'];
  
  $res = array_slice($arr, 0, 3, true);
  var_dump($res);
?>

Wynik wykonania kodu:

php[1 => 'a', 2 => 'b', 3 => 'c']

Przykład

Klucze tekstowe są zachowywane przy wycinaniu:

php<?php
  $arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
  
  $res = array_slice($arr, 0, 3);
  var_dump($res);
?>

Wynik wykonania kodu:

php['a' => 1, 'b' => 2, 'c' => 3]

Zobacz też

  • funkcję array_splice,
    która wycina część tablicy, zmieniając przy tym samą tablicę