Funkcija array_slice

Funkcija array_slice odreže in vrne del tabele. Pri tem se sama tabela ne spremeni. Prvi parameter določa tabelo za rezanje. Drugi parameter določa, od katerega elementa začeti z rezanjem, tretji pa - koliko elementov odrezati. Drugi parameter je lahko negativen - v tem primeru se bo štetje začelo od konca (-1 - zadnji element, -2 - predzadnji in tako naprej). Tretji parameter lahko povsem izpustimo - v tem primeru se bo tabela odrezala do samega konca.

Zadnji neobvezni parameter določa ali naj se ključi ob ohranijo pri rezanju, true - ohraniti, false (privzeto) - ne ohraniti. Nizni ključi se ohranijo, neodvisno od vrednosti tega parametra.

Sintaksa

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

Primer

Izrežimo elemente od prvega (ima številko 0), 3 kosov:

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

Rezultat izvajanja kode:

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

Primer

Izrežimo elemente od drugega (ima številko 1), 3 kosov:

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

Rezultat izvajanja kode:

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

Primer

Izrežimo elemente od drugega (ima številko 1) do konca tabele. Za to tretji parameter ne napišemo:

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

Rezultat izvajanja kode:

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

Primer

Izrežimo elemente od predzadnjega, 2 kosov. Za to drugi parameter nastavimo na -2 (položaj predzadnjega elementa):

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

Rezultat izvajanja kode:

php['d', 'e']

Primer

Privzeto tabela ne ohrani ključev pri izrezovanju:

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

Rezultat izvajanja kode:

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

Primer

Naredimo tako, da se ključi ohranijo. Za to zadnji parameter nastavimo na true:

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

Rezultat izvajanja kode:

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

Primer

Nizni ključi se ohranijo pri izrezovanju:

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

Rezultat izvajanja kode:

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

Glejte tudi

  • funkcijo array_splice,
    ki odreže del tabele, pri tem pa spremeni samo tabelo