Funkce array_slice

Funkce array_slice vyjme a vrátí část pole. Samotné pole se přitom nemění. Prvním parametrem je zadáno pole pro výřez. Druhým parametrem je určeno, od kterého prvku začít výřez, a třetím - kolik prvků vyjmout. Druhý parametr může být záporný - v tomto případě se počítá od konce (-1 - poslední prvek, -2 - předposlední atd.). Třetí parametr lze zcela vynechat - v tomto případě bude pole vyjmuto až do samého konce.

Poslední volitelný parametr reguluje, zda zachovat klíče při výřezu, true - zachovat, false (výchozí) - nezachovat. Řetězcové klíče jsou zachovány, bez ohledu na hodnotu tohoto parametru.

Syntaxe

phparray_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array

Příklad

Vyjměme prvky od prvního (má číslo 0), 3 kusy:

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

Výsledek provedení kódu:

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

Příklad

Vyjměme prvky od druhého (má číslo 1), 3 kusy:

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

Výsledek provedení kódu:

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

Příklad

Vyjměme prvky od druhého (má číslo 1) až do konce pole. K tomu třetí parametr nenapíšeme:

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

Výsledek provedení kódu:

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

Příklad

Vyjměme prvky od předposledního, 2 kusy. K tomu druhý parametr nastavíme na -2 (pozice předposledního prvku):

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

Výsledek provedení kódu:

php['d', 'e']

Příklad

Ve výchozím nastavení pole nezachovává klíče při výřezu:

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

Výsledek provedení kódu:

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

Příklad

Nastavme, aby se klíče zachovaly. K tomu poslední parametr nastavíme jako true:

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

Výsledek provedení kódu:

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

Příklad

Řetězcové klíče se při výřezu zachovávají:

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

Výsledek provedení kódu:

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

Viz také

  • funkci array_splice,
    která vyjme část pole, přičemž mění samotné pole