在 PHP 中,array_change_key_case() 是一个非常实用的数组函数,用于将数组中所有键名的大小写统一转换。这个函数可以简化在处理用户输入或接口数据时因大小写不一致所带来的问题。
array_change_key_case(array $array, int $case = CASE_LOWER): array
$array:必需,要处理的输入数组。
$case:可选,默认是 CASE_LOWER,表示转换为小写。你也可以使用 CASE_UPPER 转换为大写。
该函数返回一个键名大小写已被转换的新数组,原数组保持不变。
$data = [
"Name" => "Alice",
"AGE" => 25,
"City" => "Shanghai"
];
$result = array_change_key_case($data);
print_r($result);
Array
(
[name] => Alice
[age] => 25
[city] => Shanghai
)
$data = [
"Name" => "Bob",
"gender" => "Male",
"country" => "China"
];
$result = array_change_key_case($data, CASE_UPPER);
print_r($result);
Array
(
[NAME] => Bob
[GENDER] => Male
[COUNTRY] => China
)
如果数组中存在多个键名仅大小写不同的项,在转换过程中会出现键名冲突,后一个会覆盖前一个。
该函数不会影响嵌套数组的键名,只处理最外层。
$data = [
"Email" => "user1@m66.net",
"EMAIL" => "user2@m66.net"
];
$result = array_change_key_case($data, CASE_LOWER);
print_r($result);
Array
(
[email] => user2@vv99.net
)
如上所示,"EMAIL" 覆盖了 "Email" 的值。
统一处理来自不同来源的数组数据时,消除大小写差异。
在进行数组键值比较或查找时,提升准确性和一致性。
用于构建不区分大小写的配置读取功能。
结合 array_change_key_case() 和 array_map(),可以实现更复杂的数据预处理逻辑,比如统一处理用户提交的表单数据。