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
array_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
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_slice($arr, 0, 3);
var_dump($res);
?>
Resultado da execução do código:
['a', 'b', 'c']
Exemplo
Vamos extrair elementos a partir do segundo (que possui
índice 1), 3 elementos:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_slice($arr, 1, 3);
var_dump($res);
?>
Resultado da execução do código:
['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
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_slice($arr, 1);
var_dump($res);
?>
Resultado da execução do código:
['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
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_slice($arr, -2, 2);
var_dump($res);
?>
Resultado da execução do código:
['d', 'e']
Exemplo
Por padrão, a função não preserva as chaves ao extrair:
<?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:
['a', 'b', 'c']
Exemplo
Vamos fazer com que as chaves sejam preservadas. Para isso, o último parâmetro é definido como true:
<?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:
[1 => 'a', 2 => 'b', 3 => 'c']
Exemplo
Chaves de string são preservadas na extração:
<?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:
['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