Как получить ключ 1-го уровня по значению из массива 2-го уровня?

Для получения ключа 1-го уровня по значению из массива 2-го уровня в PHP нам понадобится использовать циклы и условия.

Допустим, у нас есть следующий массив 2-го уровня:

$array = [
    'key1' => ['value1', 'value2'],
    'key2' => ['value3', 'value4'],
    'key3' => ['value5', 'value6']
];

Мы хотим найти ключ 1-го уровня, содержащий значение 'value2'. Для этого мы можем использовать цикл foreach для перебора ключей 1-го уровня, а затем цикл foreach с условием для проверки каждого значения 2-го уровня:

$desiredValue = 'value2';
$foundKey = null;

foreach ($array as $key1 => $values) {
    foreach ($values as $value) {
        if ($value == $desiredValue) {
            $foundKey = $key1;
            break 2; // позволяет выйти из обоих циклов
        }
    }
}

if ($foundKey !== null) {
    echo "Найдено соответствие в ключе: $foundKey";
} else {
    echo "Соответствие не найдено";
}

В данном примере мы используем переменную $desiredValue, чтобы указать значение, которое мы ищем. Если такое значение найдено, мы присваиваем ключ 1-го уровня переменной $foundKey и прерываем оба цикла с помощью оператора break 2. В конце мы проверяем переменную $foundKey и выводим соответствующее сообщение.

При выполнении кода выше, результат будет следующим:

Найдено соответствие в ключе: key1

Если в массиве 2-го уровня нет значения 'value2', вывод будет:

Соответствие не найдено

Таким образом, с использованием циклов и условий, мы можем получить ключ 1-го уровня по значению из массива 2-го уровня в PHP.