Установка значения в многомерном массиве с помощью массива ключей

В связи с этим вопросом я задал ранее: Поиск ключей многомерного массива с помощью другого массива

Я хотел бы найти способ задать значение в многомерном массиве (глубиной до 6 уровней), используя отдельный массив, содержащий ключи для использования.

например

$keys = Array ('A', 'A2', 'A22', 'A221');
$cats[A][A2][A22][A221] = $val;

Я пытался написать неуклюжий переключатель с небольшим успехом... есть ли лучшее решение?

function set_catid(&$cats, $keys, $val) {
    switch (count($keys)) {
        case 1: $cats[$keys[0]]=$val; break;
        case 2: $cats[$keys[0]][$keys[1]]=$val; break;
        case 3: $cats[$keys[0]][$keys[1]][$keys[2]]=$val; break;
        etc...
    }
}

6
задан Community 23 May 2017 в 12:11
поделиться