当前位置: 首页> 最新文章列表> PHP array_change_key_case()

PHP array_change_key_case()

M66 2025-04-24

在 PHP 的数组操作中,键名的大小写有时会影响数据的处理结果。为了统一数组键名的格式,PHP 提供了一个非常实用的函数:array_change_key_case()。这个函数可以将数组中所有键名转换为大写或小写,特别适用于数据清洗、标准化等场景。

函数语法

array_change_key_case(array $array, int $case = CASE_LOWER): array
  • $array:必需。要处理的输入数组。

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

使用示例

下面是一个简单的示例,展示如何使用 array_change_key_case() 将数组键名转换为小写和大写。

<?php

$data = [
    "Name" => "Alice",
    "EMAIL" => "alice@m66.net",
    "Age" => 25
];

// 转换为小写键名
$lowercaseKeys = array_change_key_case($data, CASE_LOWER);
print_r($lowercaseKeys);

/* 输出:
Array
(
    [name] => Alice
    [email] => alice@vv99.net
    [age] => 25
)
*/

// 转换为大写键名
$uppercaseKeys = array_change_key_case($data, CASE_UPPER);
print_r($uppercaseKeys);

/* 输出:
Array
(
    [NAME] => Alice
    [EMAIL] => alice@vv99.net
    [AGE] => 25
)
*/
?>

注意事项

  1. 键值不变array_change_key_case() 只修改键名的大小写,不会影响数组的值。

  2. 键名冲突:如果转换后产生了重复键名(比如 "Email" 和 "EMAIL" 都存在),后一个键会覆盖前一个。

  3. 仅适用于字符串键名:数值型键名不会被影响。

实际应用场景

假设你从一个 API 获取用户数据,返回结果中的键名格式不统一:

$response = [
    "User_ID" => 101,
    "user_name" => "Bob",
    "EMAIL" => "bob@m66.net"
];

为了方便处理,你可能需要统一键名为小写:

$cleanedResponse = array_change_key_case($response, CASE_LOWER);

统一后的键名可以减少处理数据时出错的可能性,尤其是在使用 array_key_exists()isset() 之类函数时。