長い文字列 (数十万文字) を取得し、それをキーワードの配列と比較して、配列内のどのキーワードが他のキーワードよりも多く言及されているかを判断したいと考えています。
strstr
これは非常に簡単に思えますが、このタスクのパフォーマンスが低いことが少し心配です。
別の方法で行う必要がありますか?
ありがとう、
1回のスキャンで別の方法でそれを行うことができると思います。正しい方法で行うと、パフォーマンスが劇的に向上する可能性があります.
キーがキーワードで、値がオカレンスである連想配列を作成します。
文字列を単語ごとに読み取ります。つまり、単語を取得して変数に入れます。次に、それをすべてのキーワードと比較します (いくつかの方法があります。連想配列を でクエリできますisset
)。キーワードが見つかったら、そのカウンターをインクリメントします。
PHPが連想配列をハッシュマップのようなもので実装することを願っています...
単語を線形に解析します。遭遇する単語ごとに、探している単語の連想配列のカウントを増やします (もちろん、興味のない単語はスキップします)。これは、strstr よりもはるかに高速です。