Функция array_slice

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

Последният незадължителен параметър регулира дали да се запазват ключовете при извличане, true - запазват се, false (по подразбиране) - не се запазват. Низовите ключове се запазват, независимо от стойността на този параметър.

Синтаксис

phparray_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array

Пример

Нека извлечем елементи от първия (има номер 0), 3 броя:

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

Резултат от изпълнението на кода:

php['a', 'b', 'c']

Пример

Нека извлечем елементи от втория (има номер 1), 3 броя:

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

Резултат от изпълнението на кода:

php['b', 'c', 'd']

Пример

Нека извлечем елементи от втория (има номер 1) до края на масива. За това третият параметър не пишем:

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

Резултат от изпълнението на кода:

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

Пример

Нека извлечем елементи от предпоследния, 2 броя. За това вторият параметър ще установим в -2 (позиция на предпоследния елемент):

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

Резултат от изпълнението на кода:

php['d', 'e']

Пример

По подразбиране масивът не запазва ключовете при извличане:

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

Резултат от изпълнението на кода:

php['a', 'b', 'c']

Пример

Нека направим така, че ключовете да се запазват. За това последният параметър ще установим като true:

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

Резултат от изпълнението на кода:

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

Пример

Низовите ключове се запазват при извличане:

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

Резултат от изпълнението на кода:

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

Вижте също

  • функцията array_splice,
    която извлича част от масив, като при това променя самия масив