快速检查字符串是否包含特定单词

时间:2015-07-06 07:08:19

标签: php string search find compare

我在数据库中有一堆字符串,我希望使用某种数据结构,而不是使用SQL" WHERE' b'喜欢' a%'"搜索。

(在现实世界中,这些可以达到5000) A - 让我说我有话/针:for, in, like, release
注意:这些总是相同的,这里唯一可能发生的是扩展,但它们不会改变

(在现实世界中,这些可以达到50) B - 然后我有其他的话/干草堆:for people, in magazine, date of release, daily news
注意:这些是动态的,它们总是不同的

我想知道一个很好的方法来查找/删除B中的所有单词,这些单词从A的任何单词开始或结束

因此,我将从示例中删除的内容为:for people, in magazine, date of release

我很高兴即使有一个通用的想法,我可以在PHP中实现

PS:如果所有给定的想法都比较慢,我可能会回到mysql,然后使用mysql LIKE搜索,所以我更喜欢更快的东西,或者至少和mysql一样快

1 个答案:

答案 0 :(得分:0)

我能想到的一个解决方案是将字词从B中分开 for, people, in, magazine, date, of, release

标记A中存在的那些 for, in, release

这样我们最终会得到更小的数据,只需在foreach循环中对它们进行strpos就可以了

如果您知道更好的方法,请告诉我。