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
array_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
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_slice($arr, 0, 3);
var_dump($res);
?>
Resultado de la ejecución del código:
['a', 'b', 'c']
Ejemplo
Extraigamos elementos desde el segundo (tiene
índice 1), 3 elementos:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_slice($arr, 1, 3);
var_dump($res);
?>
Resultado de la ejecución del código:
['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
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_slice($arr, 1);
var_dump($res);
?>
Resultado de la ejecución del código:
['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
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_slice($arr, -2, 2);
var_dump($res);
?>
Resultado de la ejecución del código:
['d', 'e']
Ejemplo
Por defecto el array no conserva las claves al extraer:
<?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:
['a', 'b', 'c']
Ejemplo
Hagamos que las claves se conserven. Para ello establecemos el último parámetro como true:
<?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:
[1 => 'a', 2 => 'b', 3 => 'c']
Ejemplo
Las claves de tipo string se conservan al extraer:
<?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:
['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