In der PHP -Programmierung ist Array_Count_Values eine sehr häufige Funktion, und seine Funktion besteht darin, die Anzahl der in einem Array angezeigten Werte zu zählen. Für gewöhnliche Indexarrays können Array_Count_Values reibungslos arbeiten. Wenn das eingehende Array jedoch ein assoziatives Array ist, kann ein Fehler gemeldet werden. Lassen Sie uns heute diskutieren, warum die assoziativen Arrays Fehler bei der Verwendung von Array_Count_Values melden und wie dieses Problem gelöst werden kann.
Zunächst ist die Funktion array_count_values wie folgt definiert:
array array_count_values(array $input);
Die Funktion nimmt ein Array als Eingabe an und gibt ein neues Array zurück, bei dem der Schlüssel im ursprünglichen Array alle verschiedenen Werte sind und die Werte die Anzahl der angezeigten Werte sind.
Zum Beispiel:
<?php
$input = ["apple", "banana", "apple", "orange", "banana", "banana"];
$result = array_count_values($input);
print_r($result);
?>
Die Ausgabe wird sein:
Array
(
[apple] => 2
[banana] => 3
[orange] => 1
)
Dies ist die grundlegende Funktion von Array_Count_Values , die die Anzahl der Vorkommen jedes Werts im Array zählt.
Für assoziative Arrays können wir auf die folgenden Situationen stoßen:
<?php
$assocArray = [
"first" => "apple",
"second" => "banana",
"third" => "apple",
"fourth" => "orange",
"fifth" => "banana"
];
$result = array_count_values($assocArray);
print_r($result);
?>
Theoretisch sollte die Ausgabe den folgenden ähnlich sein:
Array
(
[apple] => 2
[banana] => 2
[orange] => 1
)
Das Problem tritt jedoch auf, wenn Array_Count_Values zur assoziativen Arrays verwendet wird, kann ein Fehler aufgeworfen werden. Der Grund ist: Array_Count_Values erwartet ein normales Indexarray (d. H. Die Schlüssel des Arrays sind Ganzzahlen oder ähnliche Zahlen). Bei der Verarbeitung eines assoziativen Arrays können Array_Count_Values die Schlüssel des assoziativen Arrays nicht korrekt verarbeiten, wodurch Fehler oder ungedeckte Verhaltensweisen verursacht werden.
Um Fehler von assoziativen Arrays zu vermeiden, können wir zunächst die Funktion array_values verwenden, um das assoziative Array in ein Indexarray umzuwandeln und dann den Wert zu zählen:
<?php
$assocArray = [
"first" => "apple",
"second" => "banana",
"third" => "apple",
"fourth" => "orange",
"fifth" => "banana"
];
// Konvertieren Sie ein assoziatives Array in ein Indexarray
$values = array_values($assocArray);
// Die Häufigkeit der Statistiken erscheinen
$result = array_count_values($values);
print_r($result);
?>
Die Ausgabe wird sein:
Array
(
[apple] => 2
[banana] => 2
[orange] => 1
)
Nach dem Konvertieren des assoziativen Arrays in ein Indexarray über Array_Values können Array_Count_Values ordnungsgemäß arbeiten.
Array_Count_values ist eine sehr nützliche PHP -Funktion, mit der die Anzahl der Vorkommen jedes Wertes in einem Array zählt kann. Aber es wird Probleme haben, sich mit assoziativen Arrays zu befassen. Um dieses Problem zu lösen, besteht die einfachste Möglichkeit, die Funktion array_values zu verwenden, um das assoziative Array in ein Indexarray umzuwandeln und dann Array_Count_Values zu verwenden. Auf diese Weise können wir die Häufigkeit des Wertes erfolgreich zählen.
Wenn Sie bei der Verwendung von PHP auf ähnliche Probleme stoßen, denken Sie daran, die Struktur des Arrays unter Berücksichtigung der Besonderheit des assoziativen Arrays angemessen konvertieren.
Ich hoffe, dieser Artikel ist für Sie hilfreich, danke fürs Lesen!