Dans PHP, array_change_key_case () est une fonction très pratique qui convertit tous les noms de clés dans un tableau en minuscules ou en majuscules. Cependant, cette fonction n'est efficace que pour les tableaux unidimensionnels par défaut. Si vous avez un tableau multidimensionnel et que vous souhaitez convertir des noms de clés à tous les niveaux en majuscules ou en minuscules uniformément, vous devez utiliser cette fonction récursivement.
Cet article décrira comment convertir récursivement tous les noms de clés d'un tableau multidimensionnel en minuscules ou en majuscules à l'aide de PHP.
$input = ['Name' => 'Alice', 'Age' => 25];
$result = array_change_key_case($input, CASE_LOWER);
// Sortir:['name' => 'Alice', 'age' => 25]
print_r($result);
Le code ci-dessus peut convertir tous les noms de clés des tableaux unidimensionnels en minuscules. Si le tableau est multidimensionnel, vous ne pouvez pas l'utiliser directement pour traiter les noms de clés du tableau interne.
Vous trouverez ci-dessous une fonction personnalisée qui convertit récursivement les noms de clés du tableau de toute profondeur en minuscules ou en majuscules.
function array_change_key_case_recursive(array $array, int $case = CASE_LOWER): array {
$result = [];
foreach ($array as $key => $value) {
// Convertir le nom de clé de la couche actuelle
$newKey = ($case === CASE_UPPER) ? strtoupper($key) : strtolower($key);
// Si la valeur est toujours un tableau,Appel récursif
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);
Résultat de sortie:
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);
Résultat de sortie:
Array
(
[USER] => Array
(
[NAME] => Bob
[EMAIL] => bob@vv99.net
)
[META] => Array
(
[CREATED] => 2025-04-11
[TAGS] => Array
(
[0] => PHP
[1] => Array
)
)
)
Bien que Array_Change_Key_Case () lui-même ne prenne en charge que des tableaux unidimensionnels, via des méthodes récursives, nous pouvons facilement étendre ses capacités pour gérer les tableaux à n'importe quelle hiérarchie imbriquée. Cette technique est très pratique lors de la gestion des données de demande d'API, de la configuration des tableaux et d'autres scénarios.
J'espère que cet article peut vous aider à utiliser des tableaux d'opérande PHP de plus de manière plus flexible. Si vous avez plus de questions sur PHP, n'hésitez pas à communiquer!