在 PHP 中,array_change_key_case() 是一个非常实用的函数,用于改变数组中所有键名的大小写。这个函数特别适合处理键名格式不一致的情况,比如你从数据库或者接口拿到一个数组,想统一格式,便于后续处理。
array_change_key_case(array $array, int $case = CASE_LOWER): array
$array:需要处理的原始数组。
$case:指定转换的类型。可以是:
CASE_LOWER(默认值)将键名转换为小写。
CASE_UPPER 将键名转换为大写。
如果你想把数组的键名都变成大写,只需要传入 CASE_UPPER 常量作为第二个参数即可。
<?php
$data = [
'name' => '小明',
'age' => 25,
'city' => '北京'
];
$upperKeysArray = array_change_key_case($data, CASE_UPPER);
print_r($upperKeysArray);
Array
(
[NAME] => 小明
[AGE] => 25
[CITY] => 北京
)
假设你从接口 https://api.m66.net/user/info 获取到了一个用户信息数组,但键名大小写不统一,你可以使用 array_change_key_case() 统一转换为大写:
<?php
// 模拟接口返回的数据
$userInfo = [
'Name' => '张三',
'Age' => 30,
'Email' => 'zhangsan@m66.net'
];
// 转换所有键名为大写
$userInfoUpper = array_change_key_case($userInfo, CASE_UPPER);
print_r($userInfoUpper);
Array
(
[NAME] => 张三
[AGE] => 30
[EMAIL] => zhangsan@vv99.net
)
此函数 不会递归处理子数组,仅改变最外层数组的键名。
原数组不会被修改,返回的是一个新的数组。
使用 array_change_key_case() 是一种简洁高效的方法,能帮助我们快速统一数组键名的格式,尤其适合需要处理不规范数据时使用。只需一个参数(或者两个参数指定大写),即可轻松完成转换操作。
如果你希望同时处理嵌套数组中的键名,也可以自定义递归版本来实现,这就需要多写一些逻辑了。简单场景下,用内置的 array_change_key_case() 就已经非常好用了!