PHP: добавить элемент в середину массива

Функция array_splice() удаляет length элементов, расположенных на расстоянии offset из массива input, и заменяет их элементами массива replacement, если он передан в качестве параметра. Эту функцию можно использовать для вставки, замены и удаления элементов массива.

Если передать третьим параметром ноль, то никакие элементы массива не будут удалены.

$input = ["red", "green", "blue", "yellow"];
array_splice($input, 3, 0, "white");
// => ["red", "green", "blue", "white", "yellow"];
array_splice($input, 3, 0, ["purple", "black"]);
// => ["red", "green", "blue", "purple", 
//     "black", "white", "yellow"]

Важный момент. Если передается единичный элемент, то нет необходимости заключать его в массив, если только этот элемент сам не является массивом, объектом или NULL.