我正在尝试构建一个函数,我可以用它来检查一个字符串的多个值,这是一种在 haystack 类型的函数中的通用查找针。我已将值拆分为一个数组,并尝试遍历数组并使用 for each 循环检查字符串中的值,但没有遇到预期的结果。请参阅下面的函数、一些示例和预期结果。
功能
function find($haystack, $needle) {
$needle = strtolower($needle);
$needles = array_map('trim', explode(",", $needle));
foreach ($needles as $needle) {
if (strpos($haystack, $needle) !== false) {
return true;
}
}
return false;
}
示例 1
$type = 'dynamic'; // on a dynamic page, could be static, general, section, home on other pages depending on page and section
if (find($type, 'static, dynamic')) {
// do something
} else {
// do something
}
结果
这应该捕获 $type 是否包含静态或动态的条件,并根据页面运行相同的代码。
示例 2
$section = 'products labels'; // could contain various strings generated by site depending on page and section
if (find($section, 'products')) {
// do something
} elseif (find($section, 'news')) {
// do something
} else {
// do something
}
结果
如果 $section 在新闻部分的页面上的产品部分的“新闻”页面上包含“产品”,这应该会特别捕获条件。
--
返回所需结果似乎不可靠,并且无法弄清楚原因!非常感谢任何帮助!