Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich doppelte Vorkommen in einem Array effizient zählen?

Wie kann ich doppelte Vorkommen in einem Array effizient zählen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-27 04:39:02602Durchsuche

How Can I Efficiently Count Duplicate Occurrences in an Array?

Zählen doppelter Vorkommen in Arrays

Beim Programmieren kann es nützlich sein, zu zählen, wie oft doppelte Elemente in einem Array vorkommen. Dazu müssen wir eine effiziente Lösung erstellen, die die gewünschten Daten genau erfasst.

Den Originalcode verstehen

Der bereitgestellte Code versucht, dies durch Iteration zu erreichen das Array mehrmals und verwaltet ein $ previous-Array, um eindeutige Elemente und deren Vorkommen zu speichern. Es gibt jedoch mehrere Probleme:

  • Die verschachtelten Schleifen führen zu unnötigen Iterationen und verringerter Leistung.
  • Die Logik zur Bestimmung, ob ein Element eindeutig oder doppelt ist, ist fehlerhaft.
  • Elemente aus dem $ previous-Array werden nicht korrekt aktualisiert oder entfernt.

Eine effiziente Lösung

Eine einfachere und effizientere Lösung ist Verwenden Sie die integrierte Funktion array_count_values, die das Vorkommen jedes einzelnen Elements in einem Array zählt. Diese Funktion gibt ein assoziatives Array zurück, in dem die Schlüssel die eindeutigen Elemente und die Werte ihre jeweilige Anzahl sind.

$array = [12, 43, 66, 21, 56, 43, 43, 78, 78, 100, 43, 43, 43, 21];
$vals = array_count_values($array);

Dieses Codefragment speichert die Anzahl jedes eindeutigen Elements im $vals-Array. Die Ausgabe ist:

No. of NON Duplicate Items: 7

Array
(
    [12] => 1
    [43] => 6
    [66] => 1
    [21] => 2
    [56] => 1
    [78] => 2
    [100] => 1
)

Dieses Ergebnis liefert sowohl die Anzahl der eindeutigen Elemente (7) als auch die Anzahl für jedes eindeutige Element, was das gewünschte Ergebnis ist.

Das obige ist der detaillierte Inhalt vonWie kann ich doppelte Vorkommen in einem Array effizient zählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn