Bir Hashtable ile bir metin haline Anahtar Kelimeler aranıyor

3 Cevap php

Ben, bir metinde anahtar kelimeleri aramak için istiyorum ben 6000 anahtar kelimeler etrafında var ve ben PHP bunu yapmak için en iyi yolu nedir bilmek gerekir.

Php bir hashtable uygulamak için en iyi yolu nedir?

3 Cevap

Nasıl birleştirici tuşları ile basit bir dizi hakkında? PHP'nin dizi zaten bir karma tablo ile uygulanmaktadır.

Soru biraz muğlak, bu yüzden chose basit bir senaryo / çözüm ;-)

$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);

baskılar

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

Anlamı: Anahtar kelime PHP 157 kez, call 7 kez bulundu ve supercalifragilistic sıfır kez.

Neye ihtiyacınız çalışıyoruz ne ayrıntılı çekinmeyin ve ....

O zaman kelime dokanak test edebilir çünkü bir regex daha iyi olurdu. Ayrıca, muhtemelen daha hızlı.

Söyleniyor, burada bir şey var.

$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>";