<?php
function insert_after(array &$array, $position, array $values)
{
// enforce existing position
if (!isset($array[$position]))
{
throw new Exception(strtr('Array position does not exist (:1)', [':1' => $position]));
}
// offset
$offset = 0;
// loop through array
foreach ($array as $key => $value)
{
// increase offset
++$offset;
// break if key has been found
if ($key == $position)
{
break;
}
}
$array = array_slice($array, 0, $offset, TRUE) + $values + array_slice($array, $offset, NULL, TRUE);
return $array;
}
$original = array( 'a','b','c','d','e','f','d' );
$inserted = array( 'x' );
//$arr = array_splice( $original, 3, 0, $inserted );
$arr = insert_after($original, 3, $inserted);
print_r($arr);
preferences:
50.05 ms | 402 KiB | 5 Q