Función array_slice

La función array_slice extrae y devuelve una parte de un array. El array original no se modifica. El primer parámetro especifica el array a dividir. El segundo parámetro indica desde qué elemento comenzar la extracción, y el tercero - cuántos elementos extraer. El segundo parámetro puede ser negativo - en este caso el conteo comenzará desde el final (-1 - último elemento, -2 - penúltimo y así sucesivamente). El tercer parámetro puede omitirse - en este caso el array se extraerá hasta el final.

El último parámetro opcional regula si se conservan las claves al extraer, true - conservar, false (por defecto) - no conservar. Las claves de tipo string siempre se conservan, independientemente del valor de este parámetro.

Sintaxis

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

Ejemplo

Extraigamos elementos desde el primero (tiene índice 0), 3 elementos:

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

Resultado de la ejecución del código:

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

Ejemplo

Extraigamos elementos desde el segundo (tiene índice 1), 3 elementos:

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

Resultado de la ejecución del código:

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

Ejemplo

Extraigamos elementos desde el segundo (tiene índice 1) hasta el final del array. Para ello no escribimos el tercer parámetro:

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

Resultado de la ejecución del código:

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

Ejemplo

Extraigamos elementos desde el penúltimo, 2 elementos. Para ello el segundo parámetro lo establecemos en -2 (posición del penúltimo elemento):

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

Resultado de la ejecución del código:

php['d', 'e']

Ejemplo

Por defecto el array no conserva las claves al extraer:

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

Resultado de la ejecución del código:

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

Ejemplo

Hagamos que las claves se conserven. Para ello establecemos el último parámetro como true:

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

Resultado de la ejecución del código:

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

Ejemplo

Las claves de tipo string se conservan al extraer:

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

Resultado de la ejecución del código:

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

Véase también

  • la función array_splice,
    que extrae una parte de un array, modificando el array original