array_change_key_case函数

本文详细介绍了PHP中的array_change_key_case函数,该函数用于将数组中的所有键名转换为统一的大写或小写形式。文章解释了函数的参数含义、返回值及可能引发的错误,并提供了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

array_change_key_case() 将 array 数组中的所有键名改为全小写或大写。本函数不改变数字索引。

array array_change_key_case ( array $array [, int $case = CASE_LOWER ] )

参数:
array
需要操作的数组。

case
可以在这里用两个常量,CASE_UPPER 或 CASE_LOWER(默认值)。
返回值:
返回一个键全是小写或者全是大写的数组;如果输入值(array)不是一个数组,那么返回FALSE
错误/异常 :
如果输入值(array)不是一个数组,就会抛出一个错误警告(E_WARNING)。

使用例子:

Array
(
    [FIRST] => 1
    [SECOND] => 4
)

PHP源码解析:

PHP_FUNCTION(array_change_key_case)
{
zval *array, *entry; //传入的数组,中间变量
zend_string *string_key; //字符串索引
zend_string *new_key; //字符串转换赋值的中间变量
zend_ulong num_key; //数字索引
zend_long change_to_upper=0;

if (zend_parse_parameters(ZEND_NUM_ARGS(), "a|l", &array, &change_to_upper) == FAILURE) {
    return;  //验证传入的数据
}

array_init_size(return_value, zend_hash_num_elements(Z_ARRVAL_P(array)));  //初始化return_value,Z_ARRVAL_P是(zval).value.arr

//zend_hash_num_elements是一个宏(ht)->nNumOfElements,ht是传入的参数
ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(array), num_key, string_key, entry) { //循环这个数组
if (!string_key) {
entry = zend_hash_index_update(Z_ARRVAL_P(return_value), num_key, entry);
} else {
if (change_to_upper) {
new_key = php_string_toupper(string_key); //把键值转为大写
} else {
new_key = php_string_tolower(string_key); //把键值转为小写
}
entry = zend_hash_update(Z_ARRVAL_P(return_value), new_key, entry); //插入到返回的数组中
zend_string_release(new_key); //释放中间变量
}

    zval_add_ref(entry);
} ZEND_HASH_FOREACH_END();  //循环结束

}

“`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值