2009-10-19 6 views

Répondre

0

Que diriez-vous d'un simple tableau avec des clés associatives? Le tableau de PHP est déjà implémenté avec une table de hachage.

+0

hum ok, j'ai trouvé: http://stackoverflow.com/questions/539816/steps-in-implementing -hashtable-in-php-and-mysql/539840 # 539840 – Roch

1

Une regex serait mieux parce que vous pourriez alors tester les limites de mots. De plus, c'est probablement plus rapide.

Cela étant dit, voici quelque chose.

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

Hum ok mais, comment testez-vous 6000 mots dans une seule expression rationnelle? (ils ont des modèles différents) – Roch

+0

La regex aurait lieu de la fonction strstr. La fonction strstr cherche simplement à voir si la chaîne cible est dans la chaîne. – easement

+0

Ok, je comprends maintenant, merci – Roch

1

La question est un peu vague, donc je choisi un scénario simple/solution ;-)

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

impressions

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

Ce qui signifie: le mot-clé PHP a été trouvé 157 fois, call 7 fois et supercalifragilistic zéro fois.

Ne hésitez pas à préciser ce que vous essayez et que vous avez besoin ....

Questions connexes