array_insert_after_key()

Функция добавляет в массив, новую пару ключь / значение, после указанных ключей.
Это нужно когда вы хотите вставить значение, после определенных позиций в массиве.

Использование

// Текущий массив с данными
$arrayCurrent = array(
	'test1' => 1,
	'test2' => 2,
	'test3' => 3,
	'test4' => 4,
); 

// Новый элемент который нужно вставить 
$arrayInsert = array('test' => 0);

// Список ключей после которых будет вставлен новый элемент
$arrayDepend = array('test2'); 

array_insert_after_key($arrayCurrent, $arrayInsert, $arrayDepend); 

print_r($arrayCurrent); 

// Результат
Array
(
    [test1] => 1
    [test2] => 2
    [test] => 0
    [test3] => 3
    [test4] => 4
)

Код функции

function array_insert_after_key(&$array, $insert, $depend = array()) 
{
    if (!is_array($depend)) {
        $depend = array($depend); 
    }

    $a = $b = 0; 
    foreach($array AS $k => $v) {
        if (in_array($k, $depend)) {
            $b = $a; 
        }
        $a++; 
    }

    if ($b >= 0) {
        $array = array_merge(array_slice($array, 0, $b + 1, true), $insert, array_slice($array, $b + 1, null, true));       
    } else {
        $array = array_merge($array, $insert); 
    }

    return $array; 
}