Запіс на курсы па HTML, CSS, JavaScript, PHP, Python, фрэймворкам і CMS,
а таксама: дапамога ў пошуку працы і заказаў, стажыроўка на рэальных праектах→
menu

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