Функцыя 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
,
якая адсякае частку масіва, не змяняючы пры гэтым сам масіў