Heim >Backend-Entwicklung >PHP-Tutorial >Wie zähle und sortiere ich Wortvorkommen in einer Zeichenfolge in PHP?
Sortieren und Zählen von Wortvorkommen in einer Zeichenfolge
Problemstellung:
Sie werden angezeigt mit einer Zeichenfolge, die verschiedene Wörter enthält. Die vorliegende Aufgabe besteht darin, die Häufigkeit jedes Wortes in der Zeichenfolge zu bestimmen und sie organisiert anzuzeigen.
Lösung mit der Wortzählfunktion von PHP:
PHP bietet die Funktion str_word_count(), die einen String in ein Array einzelner Wörter aufteilt. Durch die Verwendung dieser Funktion in Verbindung mit der Funktion array_count_values() können wir das Vorkommen jedes Wortes effektiv zählen.
<code class="php">$str = 'happy beautiful happy lines pear gin happy lines rock happy lines pear '; $words = array_count_values(str_word_count($str, 1));</code>
Die Funktion str_word_count() mit dem Parameter 1 stellt sicher, dass ein Array von Wörtern zurückgegeben wird. Anschließend nimmt array_count_values() dieses Array und wandelt es in ein assoziatives Array um, in dem jedes eindeutige Wort als Schlüssel dient und sein Wert die Anzahl der Vorkommen darstellt.
Dieses assoziative Array kann mit arsort( )-Funktion, um die Wörter in absteigender Reihenfolge ihrer Häufigkeit aufzulisten:
<code class="php">arsort($words);</code>
Um die sortierten Ergebnisse in einer Schleife anzuzeigen, können wir über das sortierte Array iterieren und die Anzahl jedes Wortes ausdrucken:
<code class="php">foreach ($words as $word => $count) { echo "There are $count instances of $word.\n"; }</code>
Dies führt zu einer Ausgabe, die der von Ihnen bereitgestellten ähnelt:
There are 4 instances of happy. There are 3 instances of lines. There are 2 instances of pear. There are 1 instances of gin. There are 1 instances of rock. There are 1 instances of beautiful.
Das obige ist der detaillierte Inhalt vonWie zähle und sortiere ich Wortvorkommen in einer Zeichenfolge in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!