Maison >développement back-end >tutoriel php >Explication détaillée de la façon de compter la fréquence des mots dans un tableau en utilisant PHP

Explication détaillée de la façon de compter la fréquence des mots dans un tableau en utilisant PHP

巴扎黑
巴扎黑original
2017-08-13 13:56:061973parcourir

Cet article présente principalement les méthodes de programmation PHP pour calculer la fréquence des mots dans des fichiers ou des tableaux. Il donne 2 exemples de comptage de fréquences de mots, impliquant la régularisation PHP, les opérations sur les tableaux, la traversée de chaînes et d'autres compétences connexes. Vous pouvez vous référer aux amis dans le besoin. à ce qui suit

L'exemple de cet article décrit la méthode de calcul de la fréquence des mots dans un fichier ou un tableau à l'aide de la programmation PHP. Partagez-le avec tout le monde pour votre référence. Les détails sont les suivants :

S'il s'agit d'un petit fichier, il peut être lu dans le tableau en une seule fois et utiliser la fonction pratique de comptage de tableaux pour compter la fréquence des mots (en supposant que que le contenu du fichier est tous séparé par des espaces) mots):


<?php
$str = file_get_contents("/path/to/file.txt"); //get string from file
preg_match_all("/\b(\w+[-]\w+)|(\w+)\b/",$str,$r); //place words into array $r - this includes hyphenated words
$words = array_count_values(array_map("strtolower",$r[0])); //create new array - with case-insensitive count
arsort($words); //order from high to low
print_r($words)

S'il s'agit d'un fichier volumineux, il n'est pas approprié de le lire dans la mémoire . Vous pouvez utiliser la méthode suivante :


<?php
$filename = "/path/to/file.txt";
$handle = fopen($filename,"r");
if ($handle === false) {
 exit;
}
$word = "";
while (false !== ($letter = fgetc($handle))) {
 if ($letter == &#39; &#39;) {
  $results[$word]++;
  $word = "";
 }
 else {
  $word .= $letter;
 }
}
fclose($handle);
print_r($results);

Pour les fichiers volumineux, la deuxième méthode est plus rapide et plus sûre et ne provoquera pas d'exceptions de mémoire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn