在搜索标记的单词时,如何判断 Str::contains 在 laravel 中找到了哪些单词?

How to tell which words were found by Str::contains in laravel while searching for flagged words?

提问人:Rohan 提问时间:11/9/2023 更新时间:11/17/2023 访问量:37

问:

我正在开发一项功能,我需要在某些内容中找到标记的单词,并且我正在使用内置的 laravel 来弄清楚它。它就像一个魅力,并且易于使用。Str::contains

use Illuminate\Support\Str;
Str::contains($this->content, $flagged_words)

但它只给了我一个布尔输出。我还想知道它给了我哪个标记的词。这可能吗?还是我必须另辟蹊径?true

我能想到的一种方法是遍历标记的单词数组,并单独检查它们。这样我就知道哪个词被标记了。有什么更好的主意吗?Str::contains

php laravel 字符串

评论

0赞 Adi 11/9/2023
你所想的解决方案是正确的,但你可以尝试在 laravel 中使用函数array_firstArr::first()

答:

1赞 WebDesk Solution 11/17/2023 #1

您可以尝试下面的代码;我相信这将是非常有益的。

    $flagged_words = ['first', 'second'];
    $content = "This my first string project.";

    $flagged_word = Arr::first($flagged_words, function ($word) use ($content) {
        return Str::contains($content, $word);
    });

    if ($flagged_word) {
        echo "Flagged word found:  ==> " . $flagged_word;
    } else {
        echo "No flagged words found.";
    }