(PHP 4, PHP 5, PHP 7, PHP 8)
array_splice — Удаляет часть массива и заменяет её новыми элементами
Функция удаляет из массива array
элементы,
которые обозначили параметрами offset
и length
, и заменяет удалённые элементы
элементами массива replacement
, если аргумент передали.
Замечание:
Обратите внимание, числовые ключи в массиве
array
не сохраняются.
Замечание: Функция приведёт тип аргумента
replacement
к массиву аналогично выражению(array) $parameter
, если передали не массив. Функция ведёт себя неожиданно при передаче в параметрreplacement
объекта или константыnull
.
array
Входной массив.
offset
Функция удалит часть массива с позиции смещения, которую отсчитала от начала массива array
,
если параметр offset
положителен.
Функция удалит часть массива с позиции смещения, которую отсчитала от конца массива array
,
если параметр offset
отрицателен.
length
Функция удалит каждый элемент от смещения offset
до конца массива,
если параметр length
опустили.
Функция удалит столько элементов, сколько указали в параметре length
,
если указали положительное значение.
Концом части элементов, которую удалит функция, будет такое количество элементов от конца массива,
которое указали как отрицательное значение параметра length
.
Функция не удалит элементы, если для параметра length
установили значение 0.
Совет: при вызове функции с аргументом replacement
в аргументе length
передают выражение count($input)
,
чтобы удалить из массива элементы от позиции смещения offset
до конца массива.
replacement
Функция заменит удаляемые элементы входного массива элементами массива replacement
,
если массив с элементами замены передали.
Функция вставит элементы массива replacement
в место,
которое начинается со смещения offset
,
если передали смещение offset
и длину length
,
с которыми функция ничего не удаляет.
Замечание:
Обратите внимание, что ключи массива
replacement
не сохраняются.
Совет: значение аргумента replacement
передают
без конструкции array()
или квадратных скобок короткого синтаксиса массивов,
если во входном массиве требуется заменить только одно значение,
если только само значение, которым требуется заменить элемент,
не массив, объект или null
.
Функция возвращает массив, который состоит из извлечённых элементов.
Версия | Описание |
---|---|
8.0.0 |
Параметр length теперь принимает значение null.
|
Пример #1 Примеры использования функции array_splice()
<?php
$input = array("red", "green", "blue", "yellow");
array_splice($input, 2);
var_dump($input);
$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, -1);
var_dump($input);
$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, count($input), "orange");
var_dump($input);
$input = array("red", "green", "blue", "yellow");
array_splice($input, -1, 1, array("black", "maroon"));
var_dump($input);
?>
Результат выполнения приведённого примера:
array(2) { [0]=> string(3) "red" [1]=> string(5) "green" } array(2) { [0]=> string(3) "red" [1]=> string(6) "yellow" } array(2) { [0]=> string(3) "red" [1]=> string(6) "orange" } array(5) { [0]=> string(3) "red" [1]=> string(5) "green" [2]=> string(4) "blue" [3]=> string(5) "black" [4]=> string(6) "maroon" }
Пример #2 Примеры инструкций, которые дают эквивалентный функции array_splice() результат
Следующие инструкции эквивалентны:
<?php
// Добавить два элемента в массив $input
array_push($input, $x, $y);
array_splice($input, count($input), 0, array($x, $y));
// Удалить последний элемент из массива $input
array_pop($input);
array_splice($input, -1);
// Удалить первый элемент из массива $input
array_shift($input);
array_splice($input, 0, 1);
// Добавить элемент в начало массива $input
array_unshift($input, $x, $y);
array_splice($input, 0, 0, array($x, $y));
// Заменить в массиве $input элемент с индексом $x на значение $y
$input[$x] = $y; // Для массивов, в которых ключ равен смещению
array_splice($input, $x, 1, $y);
?>