In PHP ist Array_Change_key_case () eine sehr praktische Funktion, die alle Schlüsselnamen in einem Array in Kleinbuchstaben oder Großbuchstaben umwandelt. Diese Funktion ist jedoch standardmäßig nur für eindimensionale Arrays wirksam. Wenn Sie ein mehrdimensionales Array haben und Schlüsselnamen auf allen Ebenen gleichmäßig in Großbuchstaben oder Kleinbuchstaben konvertieren möchten, müssen Sie diese Funktion rekursiv verwenden.
In diesem Artikel wird beschrieben, wie alle Schlüsselnamen eines mehrdimensionalen Arrays rekursiv in Kleinbuchstaben oder Großbuchstaben mit PHP konvertiert werden.
$input = ['Name' => 'Alice', 'Age' => 25];
$result = array_change_key_case($input, CASE_LOWER);
// Ausgabe:['name' => 'Alice', 'age' => 25]
print_r($result);
Der obige Code kann alle Schlüsselnamen eindimensionaler Arrays in Kleinbuchstaben umwandeln. Wenn das Array mehrdimensional ist, können Sie es nicht direkt verwenden, um die Schlüsselnamen des internen Arrays zu verarbeiten.
Im Folgenden finden Sie eine benutzerdefinierte Funktion, die rekursiv Arrayschlüsselnamen jeder Tiefe in Kleinbuchstaben oder Großbuchstaben umwandelt.
function array_change_key_case_recursive(array $array, int $case = CASE_LOWER): array {
$result = [];
foreach ($array as $key => $value) {
// Konvertieren Sie den Schlüsselnamen der aktuellen Ebene
$newKey = ($case === CASE_UPPER) ? strtoupper($key) : strtolower($key);
// Wenn der Wert noch ein Array ist,Rekursiver Anruf
if (is_array($value)) {
$result[$newKey] = array_change_key_case_recursive($value, $case);
} else {
$result[$newKey] = $value;
}
}
return $result;
}
$data = [
'User' => [
'Name' => 'Bob',
'Email' => 'bob@m66.net'
],
'Meta' => [
'Created' => '2025-04-11',
'Tags' => ['PHP', 'Array']
]
];
$lowerCased = array_change_key_case_recursive($data, CASE_LOWER);
print_r($lowerCased);
Ausgangsergebnis:
Array
(
[user] => Array
(
[name] => Bob
[email] => bob@vv99.net
)
[meta] => Array
(
[created] => 2025-04-11
[tags] => Array
(
[0] => PHP
[1] => Array
)
)
)
$upperCased = array_change_key_case_recursive($data, CASE_UPPER);
print_r($upperCased);
Ausgangsergebnis:
Array
(
[USER] => Array
(
[NAME] => Bob
[EMAIL] => bob@vv99.net
)
[META] => Array
(
[CREATED] => 2025-04-11
[TAGS] => Array
(
[0] => PHP
[1] => Array
)
)
)
Obwohl Array_Change_key_case () selbst nur eindimensionale Arrays durch rekursive Methoden unterstützt, können wir seine Funktionen leicht erweitern, um Arrays in jeder verschachtelten Hierarchie zu verarbeiten. Diese Technik ist sehr praktisch, wenn API -Anforderungsdaten, Arrays und andere Szenarien konfigurieren.
Ich hoffe, dieser Artikel kann Ihnen helfen, PHP -Operand -Arrays flexibler zu verwenden. Wenn Sie mehr Fragen zu PHP haben, können Sie gerne kommunizieren!