如何使用PHP计算非常大的数据集中的出现次数

假设我想跟踪单词出现的次数…

//Update the totals
foreach($arrayOfWords as $word) {
    $totals[$word] = $totals[$word] + 1;
}

现在,想象一下,这小段代码被称为数百次,每次都在$arrayWords中每次都有成千上万个新单词,从而导致关联数组$totals中有数百万个条目.尽管操作很简单(将现有值加1),但是随着我们处理数百万个条目,PHP的速度大大降低.

您能想到一种更好的方法来计数事件(最好不使用数据库)吗?

解决方法:

这是加快速度的一种方法

//Update the totals
foreach($arrayOfWords as $word) {
    $totals[$word]++;
}

无需在哈希中搜索相同的键两次就可以增加其值.

另外,(仅作说明)我看不到$totals的长度怎么会超过$arrayOfWords的长度,除非您在代码中其他位置的$totals中添加单词.

上一篇:如何优化此mysql查询?我使用IN()运算符


下一篇:使用cython的性能下降