Я попробовал следующее, но это не работает.
$index = 2;
$collection->put($index, $item4);
Например, если $ collection выглядит так:
$collection = [$item1, $item2, $item3];
Я хотел бы закончить с:
$collection = [$item1, $item2, $item4, $item3];
Самый простой способ, вероятно, состоит в том, чтобы соединить его, например так:
$collection->splice(2, 0, [$item4]);
Коллекции обычно поддерживают ту же функциональность, что и обычные массивы PHP. В этом случае это array_splice () функция, которая используется за кадром.
Установив для второго параметра значение 0, вы, по сути, говорите PHP «перейти к индексу 2 в массиве, затем удалить 0 элементов, а затем вставить этот элемент, который я только что предоставил вам».
Чтобы немного уточнить ответ Джоэла:
splice
изменяет исходную коллекцию и возвращает извлеченные элементыПотом добавить $item
по указателю $index
:
$collection->splice($index, 0, [$item]);
или вообще:
$elements = $collection->splice($index, $number, [$item1, $item2, ...]);
где $number
количество элементов, которые мы хотим извлечь (и удалить) из исходной коллекции.