定义和用法
功能
array_change_key_case() 用于将数组的所有键名(key)转换为全大写或全小写形式。它返回一个新数组,原数组保持不变。默认情况下,此函数返回小写键。
语法
参数
参数 | 描述 |
---|---|
$array(必填) | 要处理的输入数组。 |
$case(可选) | 指定转换模式,可选值为:
|
返回值
- 返回键名转换后的新数组。
- 若输入参数不是数组,返回 null 并触发警告。
示例
1. 默认转换为小写
输出:
Array
(
[apple] => 1
[banana] => 2
[orange] => 3
)
(
[apple] => 1
[banana] => 2
[orange] => 3
)
2. 显式转换为大写
输出:
Array
(
[APPLE] => 1
[BANANA] => 2
)
(
[APPLE] => 1
[BANANA] => 2
)
3. 混合键类型处理
输出:
Array
(
[10] => A // 整数键不变
[color] => Red // 原字符串键转为小写
[fruit] => Mango // 原大写的键转为小写
)
(
[10] => A // 整数键不变
[color] => Red // 原字符串键转为小写
[fruit] => Mango // 原大写的键转为小写
)
注意事项
1. 键名冲突处理
如果转换后键名重复,后面的值会覆盖前面的值:
输出:
Array
(
[name] => Bob // "NAME" 转换为小写后覆盖了 "Name"
)
(
[name] => Bob // "NAME" 转换为小写后覆盖了 "Name"
)
2. 仅处理字符串键
整数键不会被转换:
输出:
Array
(
[5] => Five // 整数键保留
[FIVE] => 5 // 字符串键转为大写
)
(
[5] => Five // 整数键保留
[FIVE] => 5 // 字符串键转为大写
)
3. 多维数组限制
该函数仅处理一维数组的键,不会递归处理子数组:
输出:
Array
(
[USER] => Array ( [Name] => Alice ) // 外层键转大写,内层键未处理
[ROLE] => Admin
)
(
[USER] => Array ( [Name] => Alice ) // 外层键转大写,内层键未处理
[ROLE] => Admin
)
4. 非数组输入报错
如果传入非数组参数,会触发警告:
常见使用场景
- 统一数组键名的大小写,便于后续处理(如比较或遍历)。
- 忽略键名大小写差异,例如从数据库或API接收的数据键名可能大小写不统一。
总结
array_change_key_case() 是处理数组键名大小写的便捷工具,但需注意键冲突和类型限制。结合具体需求合理使用,可有效提升代码的健壮性。