使用哈希表将关键字搜索到文本中

时间:2009-10-19 18:28:17

标签: php hashtable search

我想在文本中搜索关键字,我有大约6000个关键字,我需要知道在PHP中最好的方法是什么。

在php中实现哈希表的最佳方法是什么?

3 个答案:

答案 0 :(得分:1)

正则表达式会更好,因为那时你可以测试单词边界。而且,它可能更快。

话虽如此,这里有一些东西。

$needles = array('cat','dog','fox','cow');
$haystack = 'I like cats and dogs, but my favorie animal is the cow';

$hash = array();
foreach($needles as $needle){
    if (strstr($haystack,$needle)){
        $hash[$needle] = 1;
    }
}

echo "<pre>";
print_r(array_keys($hash));
echo "</pre>";

答案 1 :(得分:1)

这个问题有点模糊,所以我选择一个简单的场景/解决方案; - )

$keywords = array('PHP', 'introduction', 'call', 'supercalifragilistic');
$text = file_get_contents('http://www.php.net/archive/2009.php'); // including all the html markup, only an example
$words = array_count_values(str_word_count($text, 2));
$result = array_intersect_key($words, array_flip($keywords));
var_dump($result);

打印

array(2) {
  ["PHP"]=>
  int(157)
  ["call"]=>
  int(7)
}

这意味着:找到关键字PHP 157次,call次7次,supercalifragilistic次零次。

随意详细说明您正在尝试的内容以及您需要的内容....

答案 2 :(得分:0)

带关联键的简单数组怎么样? PHP的数组已经使用哈希表实现。