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.
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
)
Als nächstes analysieren wir, warum Boolean und Null ignoriert werden.
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.
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.
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: