Функция добавляет в массив, новую пару ключь / значение, после указанных ключей.
Это нужно когда вы хотите вставить значение, после определенных позиций в массиве.
Использование
// Текущий массив с данными
$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;
}