Aktueller Standort: Startseite> Neueste Artikel> Der Effekt von array_change_key_case () wird vor oder nach Array_unique () verwendet

Der Effekt von array_change_key_case () wird vor oder nach Array_unique () verwendet

M66 2025-05-12

Bei der Verarbeitung von Arrays in PHP wirken sich die Reihenfolge der Funktionsaufrufe häufig entscheidend auf die Ergebnisse aus. array_change_key_case () und array_unique () sind zwei Funktionen, die üblicherweise für Array -Operationen verwendet werden, aber haben Sie jemals gedacht, dass ihre Bestellung das Ergebnis beeinflusst, wenn diese beiden Funktionen zusammen verwendet werden? In diesem Artikel werden Sie ihre Nutzungs- und Bestellunterschiede in der Reihenfolge verstehen.

Funktion Einführung

Array_Change_key_Case (Array $ Array, int $ case = case_lower): Array

Diese Funktion wird verwendet, um die Schlüsselnamen eines Arrays gleichmäßig in Kleinbuchstaben ( Case_lower ) oder Großbuchstaben ( Case_upper ) umzuwandeln. Dies ist ein sehr nützliches Instrument, wenn es um inkonsistente Schlüsselnamen geht (z. B. vom Benutzer eingegebene Parameter).

 $data = [
    "Name" => "Alice",
    "AGE" => 25,
    "Gender" => "Female"
];

$result = array_change_key_case($data, CASE_LOWER);
// Ergebnis:['name' => 'Alice', 'age' => 25, 'gender' => 'Female']

Array_unique (Array $ Array, int $ flags = sort_string): Array

Diese Funktion wird verwendet, um doppelte Werte aus dem Array zu entfernen, wobei nur das erste Tastenwertepaar aufbewahrt wird, das erscheint. Es ist zu beachten, dass es nur auf den "Wert" wirkt, nicht auf den Schlüsselnamen.

 $data = ["apple", "banana", "Apple", "banana"];
$result = array_unique($data);
// Standard ist Fall sensibel:['apple', 'banana', 'Apple']

Differentialanalyse der Verwendung der Verwendung

Lassen Sie uns diese beiden Funktionen kombinieren, um festzustellen, wie sich die Ergebnisse ändern, wenn die Reihenfolge unterschiedlich ist.

1.. Array_Change_key_case () wird vorne platziert

 $data = [
    "Name" => "Alice",
    "name" => "Bob",
    "AGE" => 25,
    "age" => 30
];

$data = array_change_key_case($data, CASE_LOWER);
$data = array_unique($data);

print_r($data);

Ausgangsergebnis:

 Array
(
    [name] => Alice
    [age] => 25
)

In diesem Fall ist der Fall des Schlüsselnamens zuerst einheitlich, und "Name" und "Name" werden als der gleiche Schlüssel behandelt, sodass letzteres überschrieben wird. Die Wiederholungen des Wertes werden mit Array_unique () entfernt, aber die Auswirkungen sind nicht großartig, da die Schlüssel bereits einheitlich sind.

2. Array_unique () wird vorne platziert

 $data = [
    "Name" => "Alice",
    "name" => "Bob",
    "AGE" => 25,
    "age" => 30
];

$data = array_unique($data);
$data = array_change_key_case($data, CASE_LOWER);

print_r($data);

Ausgangsergebnis:

 Array
(
    [name] => Alice
    [age] => 25
    [age_1] => 30
)

Auf diese Weise wird das Schlüsselwertpaar mit dem eindeutigen Wert zuerst beibehalten, und dann wird der Schlüsselname einheitlich. Infolgedessen werden Schlüsselnamenkonflikte wie "Alter" und "Alter" erhalten bleiben, aber die Schlüsselnamen werden wiederholt, nachdem sie in Kleinbuchstaben konvertiert wurden. PHP behandelt diesen Konflikt automatisch im Array (z. B. Tagging mit temporären Schlüsselnamen wie Age_1 ).

Welche Bestellung ist vernünftiger?

Dies hängt von Ihrer Absicht ab, die Daten zu verarbeiten:

  • Wenn Sie der Konsistenz von Schlüsselnamen mehr Aufmerksamkeit schenken (z. B. zu verwenden, um Werte abzurufen), sollten Sie zuerst Array_Change_key_Case () verwenden .

  • Wenn Sie sich mehr auf die Entfernung doppelter Werte konzentrieren und die Schlüsselnamen für Sie nicht wichtig sind, hat die Bestellung keinen großen Einfluss, wird jedoch an Array_unique () zuerst mehr Originaldatenstrukturen erhalten.

Praktische Anwendungsbeispiele

Nehmen wir an, Sie empfangen benutzerfreundliche Daten aus einem Formular mit inkonsistenten Fallschlüssel und doppelten Werten, die Sie vereinen und an die API-Schnittstelle https://m66.net/api/submit.php senden: