G
N
I
D
A
O
L

Функция для поиска по многоуровневому массиву по подстроке одного из значений:

function recursive_array_search($needle, $haystack)
{
    foreach ($haystack as $key => $value) {
        if (!is_array($value) && ($needle == strtolower($value) || strpos(strtolower($value), $needle) !== false)) {
            return true;


        } elseif (is_array($value) && recursive_array_search($needle, $value))
            return true;
    }
    return false;
}