php从带有数组的字符串中查找匹配词

php从带有数组的字符串中查找匹配词,php,arrays,foreach,match,micro-optimization,Php,Arrays,Foreach,Match,Micro Optimization,我需要从字符串中找到一个单词,如: $row['keyword'] = "hello my name is jon"; 如果单词“text”与$row['keyword']中的一个单词匹配,那么就做点什么 我尝试过这个,但我认为有更好的方法: foreach($rows as $row) { if (strpos($row['keyword'],"text") !== false) { // do so

我需要从字符串中找到一个单词,如:

  $row['keyword'] = "hello my name is jon";
如果单词“text”与
$row['keyword']
中的一个单词匹配,那么就做点什么

我尝试过这个,但我认为有更好的方法:

       foreach($rows as $row) 
        { 
            if (strpos($row['keyword'],"text") !== false) {
               // do something
            }
        }

有很多选择和方法,但取决于您的需求。您可以查看此链接和“另请参阅”部分。此外,您可以简化代码,而不是使用数组和循环。请参见以下内容:

$str = 'hello my name is jon';
if(strpos($str, 'text')!='')
 echo "do something";
else
 echo "do something";

我认为您提供的代码看起来不错,它可能是您想要完成的工作的最佳解决方案。关于它,我唯一的问题是“你想为每个包含针的草堆运行Do something代码,还是只为你找到的第一个草堆运行?”。如果是后者,那么你应该增加一个休息时间;在“做某事”代码之后

如果您试图对代码进行性能调优,那么这真的不是您需要担心的事情。按原样对代码所做的任何更改充其量都是一个错误,并且对大量工作的影响可以忽略不计。如果您的代码执行正常,那么不要担心。如果它遇到性能问题,那么您需要准确地调查瓶颈在哪里以及为什么会出现瓶颈,并优化脚本的这些部分。优化时,重要的是要找到从所需努力中获得最大收益的地方


您可以做出的最大也是最好的优化选择是为您想要做的事情选择正确的算法,其他一切都是实现细节

text
置于引号内。除此之外,这是一个很好的测试方法。为什么要寻找更多?你们总是会找到替代品,但为了什么。我觉得很好,我怀疑你们会找到更好的解决方案。是的,你们的方法很好,很有效,你们不需要其他任何东西。如果你想匹配“jon”和“john”(或更复杂的东西),你可能更喜欢使用
preg_match(“#joh?n)n#”)
,但这不是你的示例所必需的,这已经是OP的代码在做的事情了,除了在一系列干草堆上进行迭代。但是strpos要找到位置否?我需要在字符串中找到这个词实际上我的主要目的是展示其他相关函数可以使用什么。无论如何:(strpos如果找不到字符串,则返回false,因此它是正确的函数。