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

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

M66 2025-04-25

在 PHP 中,如果我们有一个关联数组,并希望将其中所有键名统一转换为小写(或者大写),可以使用内置函数 array_change_key_case()。这个函数非常实用,尤其是在处理从外部数据源(比如 API、表单、数据库)获取的数据时,可以避免因为键名大小写不一致而导致的问题。

函数语法

array_change_key_case(array $array, int $case = CASE_LOWER): array
  • $array:要操作的原始数组。

  • $case:转换的目标大小写类型。默认为 CASE_LOWER(小写),也可以使用 CASE_UPPER(大写)。

示例:将数组的键名转换为小写

<?php

$data = [
    "Name" => "张三",
    "AGE" => 28,
    "Email" => "zhangsan@m66.net"
];

$lowercased = array_change_key_case($data, CASE_LOWER);

print_r($lowercased);
?>

输出:

Array
(
    [name] => 张三
    [age] => 28
    [email] => zhangsan@vv99.net
)

可以看到,原始数组中的键名 NameAGEEmail 全部被转换成了小写。

实际应用场景举例

假设你从一个第三方 API(比如 https://api.m66.net/user/info)接收到如下 JSON 数据:

{
    "UserID": 1024,
    "UserName": "lisi",
    "Email": "lisi@m66.net"
}

你在解析这个 JSON 并转为数组之后,可能会希望所有的键名都统一为小写来方便处理:

<?php

$json = '{
    "UserID": 1024,
    "UserName": "lisi",
    "Email": "lisi@m66.net"
}';

$data = json_decode($json, true);
$normalized = array_change_key_case($data, CASE_LOWER);

print_r($normalized);
?>

输出结果为:

Array
(
    [userid] => 1024
    [username] => lisi
    [email] => lisi@vv99.net
)

这样处理之后,后续就可以放心地通过 $normalized['email']$normalized['username'] 访问对应的值,而不需要担心原始数据中键名的大小写。

小贴士

  • array_change_key_case() 只作用于第一层数组键名。如果你的数组是多维的,需要结合循环或递归来处理嵌套数组。

  • 如果你想转换为大写,只需将第二个参数改为 CASE_UPPER