Функция array_splice
Функцията array_splice отрязва и връща
част от масив. При това отрязаната част
изчезва от масива. Вместо отрязаната част
могат да се вмъкват нови елементи.
На първия параметър се посочва масив за разрязване. На втория параметър се посочва от кой елемент да започне отрязването, а на третия - колко елемента да се отрежат. Третият параметър може да бъде отрицателен - в този случай отброяването ще започне от края (-1 - последен елемент, -2 - предпоследен и така нататък). Третият параметър може изобщо да не се посочва - в този случай масивът ще бъде отрязан до самия край.
На последния незадължителен параметър може да се зададе масив от елементи, които ще бъдат вмъкнати на мястото на изтритите.
Синтаксис
array_splice(array &$array, int $offset, ?int $length = null, mixed $replacement = []): array
Пример
Нека изрежем елементи от първия (има
номер 0), 3 броя:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 0, 3);
var_dump($res);
?>
Резултат от изпълнението на кода:
['a', 'b', 'c']
При това масивът $arr ще изглежда така:
['d', 'e']
Пример
Нека изрежем елементи от втория (има
номер 1), 3 броя:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 3);
var_dump($res);
?>
Резултат от изпълнението на кода:
['b', 'c', 'd']
При това масивът $arr ще изглежда така:
['a', 'e']
Пример
Нека изрежем елементи от втория (има номер 1) до края на масива. За това третият параметър не пишем:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1);
var_dump($res);
?>
Резултат от изпълнението на кода:
['b', 'c', 'd', 'e']
При това масивът $arr ще изглежда така:
['a']
Пример
Нека изрежем елементи от предпоследния,
2 броя. За това вторият параметър
ще установим в -2 (позиция на предпоследния
елемент):
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, -2, 2);
var_dump($res);
?>
Резултат от изпълнението на кода:
['d', 'e']
При това масивът $arr ще изглежда така:
['a', 'b', 'c']
Пример
Нека изрежем елементи от втория (има
номер 1), 2 броя, а в замяна вмъкнем
елементи 1, 2, 3:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 2, [1, 2, 3]);
var_dump($res);
?>
Резултат от изпълнението на кода:
['b', 'c']
При това масивът $arr ще изглежда така:
['a', 1, 2, 3, 'd', 'e']
Пример
Нека изобщо да не изрязваме нищо,
а просто да вмъкнем елементи 1, 2,
3 започвайки от позиция 1. За
това третият параметър се поставя на нула:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 0, [1, 2, 3]);
var_dump($res);
?>
Резултат от изпълнението на кода:
[]
При това масивът $arr ще изглежда така:
['a', 1, 2, 3, 'b', 'c', 'd', 'e']
Вижте също
-
функцията
array_slice,
която отрязва част от масив, без да променя при това самия масив