I wrote a function to insert into an array at a specified index:
function array_insert(&$arr, $index, $val)
{
if (is_array($val))
array_splice($arr, $index, 0, [$index => $val]);
else
array_splice($arr, $index, 0, $val);
}
It will also work for multidimensional arrays but only with a numerical key.