【发布时间】:2017-12-03 02:01:43
【问题描述】:
我将返回所有与stripos 函数匹配的数组
$requestedservice = request('service');
$result_array = array_filter($allservicesname, function($item) use ($requestedservice) {
return (stripos($item, $requestedservice) !== false);
});
这只适用于第一次出现,例如,如果干草堆是Walk dance and rock,如果针是Walk,它会返回Walk dance and rock,但如果针是Walk rock,它不会返回Walk dance and rock。为什么会这样?
有没有办法找到所有出现的事件,以便将干草堆Walk dance and rock 与针Walk rock 匹配?
如果针是Walk run,它不应该匹配Walk dance and rock,这是一种正常的用例
【问题讨论】:
-
一切都按预期工作。您需要为每个可能或可能不会被其他单词/字符分隔的单词调用一个单独的
stripos()。也许您想使用像preg_grep()这样的正则表达式解决方案 -
正如 php man 所说: stripos — 查找字符串中不区分大小写的子字符串的第一次出现的位置。所以你不能用这个函数找到多次出现。针“走岩”。不是“Walk dance rock”的子字符串,正如@mickmackusa 所说,您可能需要使用正则表达式
-
@Riccardo 将
walk rock放入walk dance rock的任何其他解决方案 -
php.net/manual/it/function.preg-match.php 这应该可以完成这项工作