array_slice

(PHP 4, PHP 5, PHP 7)

array_sliceExtraer una parte de un array

Descripción

array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] ) : array

array_slice() devuelve la secuencia de elementos del array array tal y como se especifica en los parámetros offset y length.

Parámetros

array

El array de entrada.

offset

Si el índice dado por offset no es negativo, la secuencia empezará en esa posición del array. Si el offset es negativo, la secuencia empezará en esa posición empezando por el final del array.

length

Si la longitud dada por length es positiva, la secuencia tendrá hasta tantos elementos como indique el valor. Si el array es más corto que length, solamente estarán presentes los elementos disponibles del array. Si se proporciona length y es negativo, la secuencia finalizará en tantos elementos empezando por el final del array. Si se omite, entonces la secuencia contendrá todo el contenido desde offset hasta el final del array.

preserve_keys

Observe que array_slice() reordenará y reinicializará los índices numéricos del array de forma predeterminada. Se puede cambiar esta comportamiento estableciendo el parámetro preserve_keys a TRUE.

Valores devueltos

Devuelve la parte del array. Si el índice es mayor que el tamaño del array, devuelve un array vacío.

Historial de cambios

Versión Descripción
5.2.4 El valor predeterminado del parámetro length se cambió a NULL. Una length NULL ahora indica a la función que use la longitud de array. Antes de esta versión, una length NULL se tomaba como de longitud cero (no se devolvía nada).
5.0.2 Se añadió el parámetro opcional preserve_keys.

Ejemplos

Ejemplo #1 Ejemplos de array_slice()

<?php
$entrada 
= array("a""b""c""d""e");

$salida array_slice($entrada2);      // devuelve "c", "d", y "e"
$salida array_slice($entrada, -21);  // devuelve "d"
$salida array_slice($entrada03);   // devuelve "a", "b", y "c"

// observe las diferencias en las claves de los arrays
print_r(array_slice($entrada2, -1));
print_r(array_slice($entrada2, -1true));
?>

El resultado del ejemplo sería:

Array
(
    [0] => c
    [1] => d
)
Array
(
    [2] => c
    [3] => d
)

Ver también