array_slice

Extract a slice of the array

&reftitle.description; `array` `array_slice` `array` `array` `int` `offset` `int` `length`&null; `bool` `preserve_keys` false

`array_slice` returns the sequence of elements from the array `array` as specified by the `offset` and `length` parameters.

&reftitle.parameters;

`array`

- The input array.

`offset`

- If `offset` is non-negative, the sequence will start at that offset in the `array`. If `offset` is negative, the sequence will start that far from the end of the `array`.

`length`

- If `length` is given and is positive, then the sequence will have up to that many elements in it. If the array is shorter than the `length`, then only the available array elements will be present. If `length` is given and is negative then the sequence will stop that many elements from the end of the array. If it is omitted, then the sequence will have everything from `offset` up until the end of the `array`.

`preserve_keys`

- Note that `array_slice` will reorder and reset the numeric array indices by default. You can change this behaviour by setting `preserve_keys` to &true;.

&reftitle.returnvalues;

Returns the slice.

&reftitle.changelog;

&Version; | &Description;
5.2.4 | The default value of the `length` parameter was changed to `NULL`. A `NULL` `length` now tells the function to use the length of `array`. Prior to this version, a `NULL` `length` was taken to mean a zero length (nothing will be returned).
5.0.2 | The optional `preserve_keys` parameter was added.

&reftitle.examples;

### `array_slice` examples

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

    $output = array_slice($input, 2);      // returns "c", "d", and "e"
    $output = array_slice($input, -2, 1);  // returns "d"
    $output = array_slice($input, 0, 3);   // returns "a", "b", and "c"

    // note the differences in the array keys
    print_r(array_slice($input, 2, -1));
    print_r(array_slice($input, 2, -1, true));
    ?>

&example.outputs;

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

&reftitle.seealso;

- `array_splice`
- `unset`
- `array_chunk`