gpt4 book ai didi

php检查多个值的字符串

转载 作者:行者123 更新时间:2023-12-02 22:07:36 26 4
gpt4 key购买 nike

我正在尝试构建一个函数,我可以用它来检查字符串中的多个值,有点像干草堆中的通用查找针函数。我已将这些值拆分成一个数组,并尝试遍历该数组并使用 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 在产品部分中的页面上包含“产品”,则这应该特别捕获条件在新闻部分的页面上的“新闻”页面上。

--

返回所需结果似乎不可靠,也不知道为什么!非常感谢任何帮助!

最佳答案

可能是这样的

function strposa($haystack, $needles=array(), $offset=0) {
$chr = array();
foreach($needles as $needle) {
$res = strpos($haystack, $needle, $offset);
if ($res !== false) $chr[$needle] = $res;
}
if(empty($chr)) return false;
return min($chr);
}

然后

$string = 'Whis string contains word "cheese" and "tea".';
$array = array('burger', 'melon', 'cheese', 'milk');

if (strposa($string, $array, 1)) {
echo 'true';
} else {
echo 'false';
}

因为奶酪,这将是真的

关于php检查多个值的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15867609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com