ZetCode

PHP array_change_key_case 函数

最后修改于 2025 年 3 月 13 日

PHP 的 array_change_key_case 函数用于更改数组中所有键名的大小写。它可以将键名转换为大写或小写。

基本定义

array_change_key_case 函数返回一个所有键名都已转换为指定大小写的数组。它同时适用于字符串键名和数字键名。

语法:array_change_key_case(array $array, int $case = CASE_LOWER): array$case 参数可以是 CASE_LOWERCASE_UPPER

基本 array_change_key_case 示例

此示例演示如何将所有数组键名转换为小写。

basic_array_change_key_case.php
<?php

$user = [
    'FirstName' => 'John',
    'LastName' => 'Doe',
    'Age' => 30
];

$lowerKeys = array_change_key_case($user);

print_r($lowerKeys);

输出将显示所有键名都已转换为小写。数字键名保持不变,因为它们不受大小写转换的影响。

转换为大写

此示例展示了如何使用该函数将所有键名转换为大写。

uppercase_keys.php
<?php

$config = [
    'db_host' => 'localhost',
    'db_user' => 'admin',
    'db_pass' => 'secret'
];

$upperKeys = array_change_key_case($config, CASE_UPPER);

print_r($upperKeys);

生成的数组将包含所有大写的键名。这在您需要一致的键名大小写以进行区分大小写的操作时非常有用。

混合键类型

该函数可处理包含混合键类型(字符串和数字)的数组。

mixed_keys.php
<?php

$mixed = [
    'Name' => 'Alice',
    0 => 'Zero',
    'Age' => 25,
    1 => 'One'
];

$lowerMixed = array_change_key_case($mixed);

print_r($lowerMixed);

只有字符串键名会被转换为小写。数字键名在输出数组中保持不变,保留其原始值和位置。

重复键名处理

当大小写转换导致重复键名时,后面的值会覆盖前面的值。

duplicate_keys.php
<?php

$data = [
    'USERNAME' => 'admin',
    'username' => 'guest',
    'Password' => '12345'
];

$uniformKeys = array_change_key_case($data);

print_r($uniformKeys);

在转换后,“USERNAME”和“username”都变成了“username”。结果中最后一个出现的值(“guest”)会覆盖第一个值(“admin”)。

多维数组

该函数仅更改数组结构顶层的键名。

multidimensional_array.php
<?php

$company = [
    'CompanyName' => 'ACME',
    'Departments' => [
        'Sales' => ['John', 'Jane'],
        'IT' => ['Mike', 'Sarah']
    ]
];

$lowerCompany = array_change_key_case($company);

print_r($lowerCompany);

只有顶层键名(“CompanyName”和“Departments”)被转换。嵌套数组的键名保持不变,保留其原始的大小写。

最佳实践

来源

PHP array_change_key_case 文档

本教程通过实际示例演示了 PHP array_change_key_case 函数在数组键名大小写转换方面的用法。

作者

我叫 Jan Bodnar,是一名充满热情的程序员,拥有丰富的编程经验。我自 2007 年以来一直在撰写编程文章。至今,我已撰写了超过 1400 篇文章和 8 本电子书。我在编程教学方面拥有十多年的经验。

列出 所有 PHP 数组函数