Don't know if already posted this, but if I did this is an improvement.
This function will check if a string contains a needle. It _will_ work with arrays and multidimensional arrays (I've tried with a > 16 dimensional array and had no problem).
<?php
function str_contains($haystack, $needles)
{
//If needles is an array
if(is_array($needles))
{
//go trough all the elements
foreach($needles as $needle)
{
//if the needle is also an array (ie needles is a multidimensional array)
if(is_array($needle))
{
//call this function again
if(str_contains($haystack, $needle))
{
//Will break out of loop and function.
return true;
}
return false;
}
//when the needle is NOT an array:
//Check if haystack contains the needle, will ignore case and check for whole words only
elseif(preg_match("/\b$needle\b/i", $haystack) !== 0)
{
return true;
}
}
}
//if $needles is not an array...
else
{
if(preg_match("/\b$needles\b/i", $haystack) !== 0)
{
return true;
}
}
return false;
}
?>