Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich leere Elemente in einem großen Array effizient zählen?

Wie kann ich leere Elemente in einem großen Array effizient zählen?

Susan Sarandon
Susan SarandonOriginal
2024-12-04 21:36:12189Durchsuche

How Can I Efficiently Count Empty Elements in a Large Array?

Array-Werte effizient zählen

Bei einem Array, das verschiedene Elemente enthält, ist es oft notwendig, die Vorkommen eines bestimmten Werts zu zählen. In diesem Fall versuchen wir, die Anzahl der leeren Elemente in einem Array zu zählen.

Problem

Betrachten Sie das folgende Array:

$array = array('', '', 'other', '', 'other');

Die Herausforderung besteht darin, die Anzahl der Elemente mit einem leeren Wert effizient zu zählen. Ein naiver Ansatz mit einer Schleife und einem Vergleich dauert bei großen Arrays mit Hunderten von Elementen mehr als 30 Sekunden.

Effiziente Lösung

Um die Effizienz zu steigern, können wir die Funktion array_count_values ​​nutzen. Diese Funktion erstellt ein assoziatives Array, in dem die Schlüssel die Array-Werte darstellen und die entsprechenden Werte ihre jeweiligen Anzahlen darstellen.

function with($array) {
    $counts = array_count_values($array);
    return $counts[''];
}

Im Beispielarray stellt '' den leeren Wert dar. Durch den Zugriff auf $counts[''] erhalten wir direkt die Anzahl der leeren Elemente, was im Vergleich zu einem schleifenbasierten Ansatz erhebliche Geschwindigkeitsverbesserungen bietet.

Verwendung

An Verwenden Sie diese Lösung, rufen Sie einfach die Funktion with auf und übergeben Sie das zu überprüfende Array. Zum Beispiel mit dem angegebenen Array:

$count = with($array); // $count will be 3

Das obige ist der detaillierte Inhalt vonWie kann ich leere Elemente in einem großen 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