Функция array_slice
Функция array_slice
отрезает и возвращает
часть массива. При этом сам массив не меняется.
Первым параметром указывается массив для
разрезания. Вторым параметром указывается,
с какого элемента начинать отрезание, а третьим
- сколько элементов отрезать. Второй параметр
может быть отрицательным - в этом случае
отсчет начнется с конца (-1
- последний элемент,
-2
- предпоследний и так далее). Третий параметр
можно вообще не указывать - в этом случае
массив отрежется до самого конца.
Последний необязательный параметр регулирует
сохранять ли ключи при отрезании, true
-
сохранять, false
(по умолчанию) - не сохранять.
Строковые ключи сохраняются, независимо от
значения этого параметра.
Синтаксис
array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array
Пример
Давайте вырежем элементы с первого (имеет
номер 0
), 3
штуки:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_slice($arr, 0, 3);
var_dump($res);
?>
Результат выполнения кода:
['a', 'b', 'c']
Пример
Давайте вырежем элементы со второго (имеет
номер 1
), 3
штуки:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_slice($arr, 1, 3);
var_dump($res);
?>
Результат выполнения кода:
['b', 'c', 'd']
Пример
Давайте вырежем элементы со второго (имеет
номер 1
) до конца массива. Для этого третий
параметр не пишем:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_slice($arr, 1);
var_dump($res);
?>
Результат выполнения кода:
['b', 'c', 'd', 'e']
Пример
Давайте вырежем элементы с предпоследнего,
2
штуки. Для этого второй параметр
установим в -2
(позиция предпоследнего
элемента):
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_slice($arr, -2, 2);
var_dump($res);
?>
Результат выполнения кода:
['d', 'e']
Пример
По умолчанию массив не сохраняет ключи при вырезании:
<?php
$arr = [1 => 'a', 2 => 'b', 3 => 'c', 4 => 'd', 5 => 'c'];
$res = array_slice($arr, 0, 3);
var_dump($res);
?>
Результат выполнения кода:
['a', 'b', 'c']
Пример
Давайте сделаем так, чтобы ключи сохранялись. Для этого последний параметр установим как true:
<?php
$arr = [1 => 'a', 2 => 'b', 3 => 'c'];
$res = array_slice($arr, 0, 3, true);
var_dump($res);
?>
Результат выполнения кода:
[1 => 'a', 2 => 'b', 3 => 'c']
Пример
Строковые ключи сохраняются при вырезании:
<?php
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
$res = array_slice($arr, 0, 3);
var_dump($res);
?>
Результат выполнения кода:
['a' => 1, 'b' => 2, 'c' => 3]
Смотрите также
-
функцию
array_splice
,
которая отрезает часть массива, изменяя при этом сам массив