Для нахождения одного из массивов в многомерном массиве по имеющемуся в нем значению в 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
. Важно отметить, что функция ищет только первое вхождение значения и не обрабатывает дубликаты. Если вы хотите найти все совпадения, вам следует изменить функцию соответствующим образом.