当前位置: 首页> 最新文章列表> 如何使用 array_change_key_case() 将数组键转换为大写?

如何使用 array_change_key_case() 将数组键转换为大写?

M66 2025-04-25

在 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() 就已经非常好用了!