Heim >Backend-Entwicklung >PHP-Tutorial >Ausführliche Erklärung, wie man mit PHP die Häufigkeit von Wörtern in einem Array zählt
In diesem Artikel werden hauptsächlich PHP-Programmiermethoden zum Berechnen der Häufigkeit von Wörtern in Dateien oder Arrays vorgestellt. Er enthält zwei Beispiele für das Zählen von Worthäufigkeiten, darunter PHP-Regularisierung, Array-Operationen, String-Traversierung und andere verwandte Fähigkeiten zu Folgendem
Das Beispiel in diesem Artikel beschreibt die Methode zur Berechnung der Häufigkeit von Wörtern in einer Datei oder einem Array mithilfe der PHP-Programmierung. Geben Sie es als Referenz an alle weiter. Die Details lauten wie folgt:
Wenn es sich um eine kleine Datei handelt, kann sie gleichzeitig in das Array eingelesen und die praktische Array-Zählfunktion verwendet werden, um die Worthäufigkeit zu zählen (vorausgesetzt, dass die Inhalte in der Datei alle durch Leerzeichen getrennt sind) Wörter):
<?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)
Wenn es sich um eine große Datei handelt, ist es nicht angebracht, sie in den Speicher einzulesen . Sie können die folgende Methode verwenden:
<?php $filename = "/path/to/file.txt"; $handle = fopen($filename,"r"); if ($handle === false) { exit; } $word = ""; while (false !== ($letter = fgetc($handle))) { if ($letter == ' ') { $results[$word]++; $word = ""; } else { $word .= $letter; } } fclose($handle); print_r($results);
Bei großen Dateien ist die zweite Methode schneller und sicherer und verursacht keine Speicherausnahmen.
Das obige ist der detaillierte Inhalt vonAusführliche Erklärung, wie man mit PHP die Häufigkeit von Wörtern in einem Array zählt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!