# Функция array_slice

Функция `array_slice` отрезает и возвращает часть массива. При этом сам массив не меняется. Первым параметром указывается массив для разрезания. Вторым параметром указывается, с какого элемента начинать отрезание, а третьим - сколько элементов отрезать. Второй параметр может быть отрицательным - в этом случае отсчет начнется с конца (`-1` - последний элемент, `-2` - предпоследний и так далее). Третий параметр можно вообще не указывать - в этом случае массив отрежется до самого конца.

Последний необязательный параметр регулирует сохранять ли ключи при отрезании, true - сохранять, false (по умолчанию) - не сохранять. Строковые ключи сохраняются, независимо от значения этого параметра.

## Синтаксис

`array_slice(массив, откуда отрезать, [сколько], [сохранять ключи = true]);`

## Пример

Давайте вырежем элементы с первого (имеет номер 0), `3` штуки:

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

Результат выполнения кода:

`['a', 'b', 'c']`

## Пример

Давайте вырежем элементы со второго (имеет номер 1), `3` штуки:

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

Результат выполнения кода:

`['b', 'c', 'd']`

## Пример

Давайте вырежем элементы со второго (имеет номер 1) до конца массива. Для этого третий параметр не пишем:

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

Результат выполнения кода:

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

## Пример

Давайте вырежем элементы с предпоследнего, `2` штуки. Для этого второй параметр установим в `-2` (позиция предпоследнего элемента):

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

Результат выполнения кода:

`['d', 'e']`

## Пример

По умолчанию массив не сохраняет ключи при вырезании:

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

Результат выполнения кода:

`['a', 'b', 'c']`

## Пример

Давайте сделаем так, чтобы ключи сохранялись. Для этого последний параметр установим как true:

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

Результат выполнения кода:

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

## Пример

Строковые ключи сохраняются при вырезании:

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

Результат выполнения кода:

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

## Смотрите также

- функцию `array_splice`,
  которая отрезает часть массива, изменяя при этом сам массив

← →
↑