Aktueller Standort: Startseite> Neueste Artikel> Warum werden Boolesche und Null nicht gezählt?

Warum werden Boolesche und Null nicht gezählt?

M66 2025-06-07

Array_Count_Values ​​ist eine sehr praktische Funktion in PHP, die die Anzahl der Vorkommen aller Werte in einem Array zählt. Diese Funktion gibt ein assoziatives Array zurück, in dem die Schlüssel des Arrays die Werte im ursprünglichen Array sind und die Werte des Arrays die Anzahl der Zeiten sind, die diese Werte im ursprünglichen Array angezeigt werden.

Bei Verwendung von Array_Count_Values ​​können Sie jedoch manchmal feststellen, dass boolesche Werte ( wahr und falsch ) und Null in der Statistik nicht erscheinen. Warum ist das? Lassen Sie es uns noch heute analysieren.

1. Einführung in die Funktion array_count_values

Lassen Sie uns zunächst die grundlegende Nutzung der Funktion array_count_values ​​überprüfen. Diese Funktion nimmt ein Array als Argument an und gibt ein neues Array zurück, wodurch die Anzahl der Vorkommen jedes Elements im Array zählt. Zum Beispiel:

 $arr = ['apple', 'banana', 'apple', 'orange', 'banana', 'banana'];
$result = array_count_values($arr);
print_r($result);

Die Ausgabe wird sein:

 Array
(
    [apple] => 2
    [banana] => 3
    [orange] => 1
)

2. Gründe für Boolesche und Null zu ignorieren

Als nächstes analysieren wir, warum Boolean und Null ignoriert werden.

Boolescher Wert

In PHP werden die booleschen Werte True und False in die Ganzzahlwerte 1 und 0 konvertiert, und in der Funktion array_count_values ​​werden die booleschen Werte als der gleiche Wert angesehen. Insbesondere werden wahr und false als die gleichen 1 und 0 behandelt, und Array_Count_values ​​fusioniert sie bei der Verarbeitung von Arrays. Wenn im Array mehrere boolesche Werte vorhanden sind, werden ihre Ereignisse in den entsprechenden Ganzzahlwert verschmolzen, anstatt die booleschen Werte getrennt zu zählen.

 $arr = [true, false, true, 1, 0];
$result = array_count_values($arr);
print_r($result);

Die Ausgabe wird sein:

 Array
(
    [1] => 3
    [0] => 2
)

Sie können sehen, dass True und 1 in 1 zusammengeführt werden, während False und 0 in 0 zusammengeführt werden, so dass der boolesche Wert nicht getrennt gezählt wird.

NULL

Für Nullwerte hat PHP auch ein spezielles Verhalten bei der Verarbeitung von Arrays. Wenn Array_Count_values ​​verwendet wird, wird Null ignoriert, da es normalerweise in PHP als "Null" betrachtet wird. Wenn Sie die Anzahl der Vorkommen von NULL zählen müssen, können Sie sie zuerst in einen anderen Wert konvertieren oder auf andere Weise verarbeiten.

Betrachten Sie beispielsweise den folgenden Code:

 $arr = [NULL, 'apple', NULL, 'banana', 'apple'];
$result = array_count_values($arr);
print_r($result);

Die Ausgabe wird sein:

 Array
(
    [apple] => 2
    [banana] => 1
)

Wie Sie sehen können, erscheint Null im Ergebnis nicht. Um dieses Problem zu lösen, können Sie alle Nullwerte durch einen bestimmten Wert ersetzen, z .

 $arr = [NULL, 'apple', NULL, 'banana', 'apple'];
$arr = array_map(function($value) {
    return $value === NULL ? 'NULL' : $value;
}, $arr);
$result = array_count_values($arr);
print_r($result);

Die Ausgabe wird sein:

 Array
(
    [NULL] => 2
    [apple] => 2
    [banana] => 1
)

Auf diese Weise können Sie bei der Angabe Nullwerte einfügen.

3. Zusammenfassung

Array_Count_Values ​​ist eine sehr bequeme Funktion, um die Anzahl der Vorkommen jedes Wertes in einem Array zu zählen. Da die Booleschen und Nullwerte in PHP bei der Verarbeitung spezielle Konvertierungs- und Unwissenheitsverhalten aufweisen, werden sie jedoch nicht getrennt gezählt. Wenn Sie sich mit diesen Sonderfällen befassen müssen, können Sie diese Werte manuell ersetzen, bevor Sie Array_Count_Values ​​aufrufen, oder die Konvertierung eingeben, um sicherzustellen, dass sie korrekt gezählt werden können.

Endgültiger Inhalt: