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

Wie kann ich das Vorkommen bestimmter Werte in einem PHP-Array effizient zählen?

DDD
DDDOriginal
2024-12-01 05:52:11346Durchsuche

How Can I Efficiently Count Occurrences of Specific Values in a PHP Array?

Werte in einem Array mit Array_count_values ​​zählen

Bei der Arbeit mit Arrays ist es oft notwendig, das Vorkommen bestimmter Werte zu zählen. Stellen Sie sich beispielsweise ein Array vor, das sowohl leere als auch nicht leere Werte enthält:

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

Das Ziel besteht darin, die Anzahl der leeren Werte im Array effizient zu bestimmen, insbesondere bei größeren Arrays mit Hunderten von Elementen.

Zunächst könnten wir eine einfache Iteration in Betracht ziehen:

function without($array) {
    $counter = 0;
    for($i = 0, $e = count($array); $i < $e; $i++) {
        if(empty($array[$i])) {
            $counter += 1;
        }
    }
    return $counter;
}

Dieser Ansatz kann jedoch für größere Arrays ineffizient sein. PHP bietet eine optimiertere Lösung mit der Funktion array_count_values. Diese Funktion verwendet ein Array als Eingabe und gibt ein Array mit Schlüsseln zurück, die die Werte aus dem Eingabearray darstellen, und Werten, die die Anzahl jedes Werts darstellen.

$counts = array_count_values($array);

Das Ergebnis wäre:

array(
    '' => 3,
    'other' => 2
)

Um die Anzahl der Leerwerte zu zählen, greifen Sie einfach auf den entsprechenden Schlüssel zu:

$blank_count = $counts[''];

Dieser Ansatz ist deutlich effizienter als die iterative Methode, insbesondere bei großen Arrays.

Das obige ist der detaillierte Inhalt vonWie kann ich das Vorkommen bestimmter Werte in einem PHP-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