array_slice

Extract a slice of the array

&reftitle.description; `array` `array_slice` `array` `array` `int` `offset` ``int``null```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`.

  The `offset` parameter denotes the position in the array, not the key.

`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`

- `array_slice` will reorder and reset the integer array indices by default. This behaviour can be changed by setting `preserve_keys` to &true;. String keys are always preserved, regardless of this parameter.

&reftitle.returnvalues;

Returns the slice. If the offset is larger than the size of the array, an empty array is returned.

&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
    )

### `array_slice` and one-based array

    <?php
    $input = array(1 => "a", "b", "c", "d", "e");
    print_r(array_slice($input, 1, 2));
    ?>

&example.outputs;

    Array
    (
        [0] => b
        [1] => c
    )

### `array_slice` and array with mixed keys

    <?php
    $ar = array('a'=>'apple', 'b'=>'banana', '42'=>'pear', 'd'=>'orange');
    print_r(array_slice($ar, 0, 3));
    print_r(array_slice($ar, 0, 3, true));
    ?>

&example.outputs;

    Array
    (
        [a] => apple
        [b] => banana
        [0] => pear
    )
    Array
    (
        [a] => apple
        [b] => banana
        [42] => pear
    )

&reftitle.seealso;

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