Если я вас правильно понял:
function arrayToNestedKeys(array $keys, array $insertInto, $value) {
$tmp = &$insertInto;
foreach ($keys as $key) {
if (!isset($tmp[$key]) || !is_array($tmp[$key])) {
$tmp[$key] = [];
}
$tmp[$key] = [];
$tmp = &$tmp[$key];
}
$tmp = $value;
return $insertInto;
}
// arrayToNestedKeys([78,2,3], [123], 6) выдаст
// [0 => 123, 78 => [2 => [3 => 6]]]
Upd: Подкорректировал решение - добавил проверку на существование массива во время прокладывания "пути" в массиве. Спасибо
@happyproff