Bei PHP -Array -Operationen wirkt sich der Fall von Schlüsselnamen manchmal auf die Verarbeitungsergebnisse der Daten aus. Um das Format der Arrayschlüsselnamen zu vereinen, bietet PHP eine sehr praktische Funktion: Array_Change_key_Case () . Diese Funktion kann alle Schlüsselnamen im Array in Großbuchstaben oder Kleinbuchstaben umwandeln, insbesondere für Datenreinigung, Standardisierung und andere Szenarien.
array_change_key_case(array $array, int $case = CASE_LOWER): array
$ Array : Erforderlich. Das zu verarbeitende Eingangsarray.
$ case : optional. Der Falltyp der Konvertierung. Der Standardwert ist Case_lower (in den unteren Fall konvertieren) oder Case_upper (in oberen Fall konvertieren).
Hier ist ein einfaches Beispiel, das zeigt, wie Arrayschlüsselnamen in Kleinbuchstaben und Großbuchstaben mit Array_Change_key_Case () konvertiert werden.
<?php
$data = [
"Name" => "Alice",
"EMAIL" => "alice@m66.net",
"Age" => 25
];
// Konvertieren Sie in Kleinbuchstabenschlüsselname
$lowercaseKeys = array_change_key_case($data, CASE_LOWER);
print_r($lowercaseKeys);
/* Ausgabe:
Array
(
[name] => Alice
[email] => alice@vv99.net
[age] => 25
)
*/
// Konvertieren Sie zum Kapitalschlüsselnamen
$uppercaseKeys = array_change_key_case($data, CASE_UPPER);
print_r($uppercaseKeys);
/* Ausgabe:
Array
(
[NAME] => Alice
[EMAIL] => alice@vv99.net
[AGE] => 25
)
*/
?>
Der Schlüsselwert bleibt unverändert : Array_Change_key_case () ändert nur den Fall des Schlüsselnamens und wirkt sich nicht auf den Wert des Arrays aus.
Schlüsselname Konflikt : Wenn nach der Konvertierung ein doppelter Schlüsselname generiert wird (z. B. "E -Mail" und "E -Mail" existieren), überschreibt der nächste Schlüssel die vorherige.
Nur für Zeichenfolgenschlüssenamen anwendbar : Numerische Schlüsselnamen werden nicht betroffen.
Angenommen, Sie erhalten Benutzerdaten von einer API, und die Schlüsselnamen im zurückgegebenen Ergebnis sind inkonsistentes Format:
$response = [
"User_ID" => 101,
"user_name" => "Bob",
"EMAIL" => "bob@m66.net"
];
Für die einfache Verarbeitung benötigen Sie möglicherweise einen einheitlichen Schlüsselnamen in Kleinbuchstaben:
$cleanedResponse = array_change_key_case($response, CASE_LOWER);
Einheitliche Schlüsselnamen können die Möglichkeit von Fehlern bei der Verarbeitung von Daten verringern, insbesondere bei der Verwendung von Funktionen wie array_key_exists () und isset () .