Как найти один из массивов многомерного массива, по имеющемуся в нём значению?

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

function findArrayByValue($array, $value) {
    foreach ($array as $key => $item) {
        if (is_array($item)) {
            $result = findArrayByValue($item, $value); // Рекурсивно вызываем функцию для поиска во вложенных массивах
            if (!is_null($result)) {
                return $result; // Если результат не null, возвращаем его
            }
        } elseif (is_string($item) && $item == $value) {
            return $array; // Если значение совпадает, возвращаем текущий массив
        }
    }
    return null; // Если массив не содержит нужное значение, возвращаем null
}

Пример использования этой функции:

$array = [
    ['apple', 'banana', 'cherry'],
    ['date', 'elderberry', 'fig']
];

$result = findArrayByValue($array, 'cherry');
print_r($result);

В данном примере будет найден массив ['apple', 'banana', 'cherry'], так как он содержит искомое значение 'cherry'. Если искомое значение отсутствует, функция вернет null. Важно отметить, что функция ищет только первое вхождение значения и не обрабатывает дубликаты. Если вы хотите найти все совпадения, вам следует изменить функцию соответствующим образом.