我想获取一个长字符串(数十万个字符)并将其与一组关键字进行比较,以确定数组中的哪个关键字比其他关键字被提及的次数更多。
这似乎很容易,但我有点担心strstr
这项任务的表现不佳。
我应该以不同的方式来做吗?
谢谢,
我认为您可以通过一次扫描以不同的方式进行操作,如果您以正确的方式进行操作,它可以为您带来显着的性能提升。
创建一个关联数组,其中键是关键字,值是出现次数。
逐字阅读字符串,我的意思是取一个单词并将其放入变量中。然后,将其与所有关键字进行比较(有几种方法可以做到,您可以使用 查询关联数组isset
)。当找到一个关键字时,增加它的计数器。
我希望 PHP 用一些类似 hashmap 的东西来实现关联数组...
以线性方式解析单词。对于您遇到的每个单词,在您正在寻找的单词的关联数组中增加它的计数(当然,跳过那些您不感兴趣的单词)。这将比 strstr 快得多。