Функция 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,
която извлича част от масив, като при това променя самия масив