比较字符串中关键字的流行度

时间:2011-04-26 22:32:34

标签: php string strstr

我想要一个长字符串(数十万个字符)并将其与一组关键字进行比较,以确定数组中哪个关键字被提及的次数多于其他关键字。

这看起来很简单,但我有点担心strstr正在执行此任务。

我应该以不同的方式吗?

谢谢,

2 个答案:

答案 0 :(得分:2)

我认为你可以通过一次扫描以不同的方式做到这一点,如果你以正确的方式做到这一点,它可以在性能上给你带来显着的改善。

创建一个关联数组,其中键是关键字,值是出现次数。

逐字逐句读取字符串,我的意思是取一个单词并将其放在一个变量中。然后,将它与所有关键字进行比较(有几种方法可以执行此操作,您可以使用isset查询关联数组)。找到关键字后,递增其计数器。

我希望PHP使用类似hashmap的东西来实现关联数组......

答案 1 :(得分:0)

以线性方式解析单词。对于您遇到的每个单词,在您要查找的单词的关联数组中增加其计数(当然,跳过您不感兴趣的单词)。这将比strstr快得多。