(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);
?>