Как перебрать многомерный массив с учетом динамического промежуточного ключа?

Для перебора многомерного массива с учетом динамического промежуточного ключа в PHP можно воспользоваться рекурсивной функцией. Вот пример кода, демонстрирующий этот подход:

function findValueInNestedArray($array, $keys) {
    $currentKey = array_shift($keys);

    if (count($keys) === 0) {
        return $array[$currentKey];
    }

    if (isset($array[$currentKey]) && is_array($array[$currentKey])) {
        return findValueInNestedArray($array[$currentKey], $keys);
    }

    return null;
}

// Пример использования функции
$multidimensionalArray = [
    'first' => [
        'second' => [
            'third' => 'value'
        ]
    ]
];

$keys = ['first', 'second', 'third'];
$result = findValueInNestedArray($multidimensionalArray, $keys);

if ($result !== null) {
    echo "Значение: " . $result;
} else {
    echo "Значение не найдено";
}

В этом примере функция findValueInNestedArray принимает многомерный массив и массив ключей, по которым нужно пройтись для доступа к значению. Она рекурсивно проходит по массиву, используя каждый ключ до тех пор, пока они не будут исчерпаны. Если значение найдено, оно возвращается, иначе возвращается null.

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