3
我有一個文件「文字」大小約5.8 MB,並有560,000字的文字。我用它來從連接在一起的字符串中獲取真正的單詞。如何快速搜索字符串內巨大數組的值?
E.g. greenbananatruck可能是這樣的字符串。
我寫這個函數的速度非常快。但我不能讓它更快,然後0.5秒。我正在使用8核心處理器,8GB內存的服務器。其實cpu不是問題,問題是內存。我需要能夠在多個實例中快速高效地完成此過程。
public function wordSplitReal($str){
$words = array_filter($this->dict, function($word) use(&$str) {
$pos = strpos($str, $word);
if ($pos !== false){
$str = substr_replace($str, "", $pos, strlen($word));
return true;
}
return false;
});
return $words;
}
這很簡單,就是我其實做的是「過濾」數組「字典」僅是給定字符串中的單詞。 (我對多個單詞不感興趣。) 字典是從最長的單詞預先排序的。所有隻有低字母。 這個函數是使用單例的更大類的一部分。
任何幫助,將不勝感激。
不會有數據庫更適合這個嗎? –
不,我用資源測試了同樣的東西,花了大約3倍的時間。 –