Função array_slice

A função array_slice extrai e retorna uma parte de um array. O array original não é modificado. O primeiro parâmetro especifica o array a ser extraído. O segundo parâmetro especifica a partir de qual elemento começar a extração, e o terceiro - quantos elementos extrair. O segundo parâmetro pode ser negativo - neste caso a contagem começará a partir do final (-1 - o último elemento, -2 - o penúltimo e assim por diante). O terceiro parâmetro pode ser omitido - neste caso o array será extraído até o final.

O último parâmetro opcional controla se as chaves devem ser preservadas na extração, true - preservar, false (padrão) - não preservar. Chaves de string são sempre preservadas, independentemente do valor deste parâmetro.

Sintaxe

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

Exemplo

Vamos extrair elementos a partir do primeiro (que possui índice 0), 3 elementos:

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

Resultado da execução do código:

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

Exemplo

Vamos extrair elementos a partir do segundo (que possui índice 1), 3 elementos:

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

Resultado da execução do código:

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

Exemplo

Vamos extrair elementos a partir do segundo (que possui índice 1) até o final do array. Para isso, o terceiro parâmetro não é informado:

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

Resultado da execução do código:

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

Exemplo

Vamos extrair elementos a partir do penúltimo, 2 elementos. Para isso, o segundo parâmetro é definido como -2 (posição do penúltimo elemento):

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

Resultado da execução do código:

php['d', 'e']

Exemplo

Por padrão, a função não preserva as chaves ao extrair:

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

Resultado da execução do código:

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

Exemplo

Vamos fazer com que as chaves sejam preservadas. Para isso, o último parâmetro é definido como true:

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

Resultado da execução do código:

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

Exemplo

Chaves de string são preservadas na extração:

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

Resultado da execução do código:

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

Veja também

  • a função array_splice,
    que extrai uma parte de um array, modificando o array original