array_splice

(PHP 4, PHP 5, PHP 7, PHP 8)

array_spliceУдаляет часть массива и заменяет её новыми элементами

Описание

array_splice(
    array &$array,
    int $offset,
    ?int $length = null,
    mixed $replacement = []
): array

Функция удаляет из массива 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);

?>

Смотрите также

  • array_merge() - Сливает один или несколько массивов
  • array_slice() - Выбирает срез массива
  • unset() - Удаляет переменную