Функция для поиска по многоуровневому массиву по подстроке одного из значений:
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;
}