Aktueller Standort: Startseite> Neueste Artikel> Warum melde ich einen Fehler bei, wenn ich ein assoziatives Array verwende?

Warum melde ich einen Fehler bei, wenn ich ein assoziatives Array verwende?

M66 2025-05-13

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.

1. Einführung in die Funktion array_count_values

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.

2. Warum meldet ein assoziatives Array einen Fehler?

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.

3. Lösung

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.

4. Zusammenfassung

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!