`
长虫的梅子
  • 浏览: 43303 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

数组键值大小写的转换

    博客分类:
  • PHP
阅读更多
php提供一个函数来实现大小写的转换
array_change_key_case(array,case)
array 必需。规定要使用的数组。
case  CASE_LOWER - 默认值,小写;CASE_UPPER 大写。

例子:

$arr = array('ID' => 1, 'NAME'=> 'Yami', 'Con' => array('PHONE' => '123456', 'EMAIL' => 'yamiliu@vip.qq.com') );
print_r(array_change_key_case($arr,CASE_LOWER));

遗憾的是,这个方法只能实现一维数组的转换。
下面写了个函数来实现多维数组的转换
/*
 * 转换数组键值大小写
 *
 * @author    yamiliu<yamiliu@vip.qq.com>
 * @params    $aValue  array    需要转换的数组
 * @params    $case    boolean  0:小写、默认值;1:大写
 * 
 */
function changeArrKey(&$aValue, $case = 0)
{
    foreach ( $aValue as $key => $item ) {
        if ( $case ) {
            $keyTemp = strtoupper($key);
        } else {
            $keyTemp = strtolower($key);
        } 
        if ( $keyTemp != $key ) {
            unset($aValue[$key]);
            $aValue[$keyTemp] = $item;
        }
        if ( is_array($item) ) {
            changeArrKey($aValue[$keyTemp], $case);
        }
    }

}
// 调用
$arr = array('ID' => 1, 'NAME'=> 'Yami', 'Con' => array('PHONE' => '123456', 'EMAIL' => 'yamiliu@vip.qq.com') );
changeArrKey($arr);
var_dump($arr);

后来想想改变原数组的值比不是个好注意
又写了个方法如下:

/*
 * @author    yamiliu<yamiliu@vip.qq.com>
 * @params    array   $aValue    需要转换的数组
 * @params    boolean $case      0:小写、默认值;1:大写
 * @return    array              转换后的数组 
 */
function array_key_to_case( $aValue, $case = 0 ) 
{
    $aValueTemp = array();
    foreach ( $aValue as $key => $item ) {
        if ( $case ) {
            $keyTemp = strtoupper($key);
        } else {
            $keyTemp = strtolower($key);
        }
        $aValueTemp[$keyTemp] = $item;
        if ( is_array($item) ) {
            $aValueTemp[$keyTemp] = array_key_to_case($item, $case);
        }
    }
    return $aValueTemp;
}
// 调用
$arr = array('id' => 1, 'name'=> 'Yami', 'Con' => array('phone' => '123456', 'email' => 'yamiliu@vip.qq.com') );
$r   = array_key_to_case($arr, 1);
print_r($r);

话说不断的重写自己的代码,对提高技术会有大大的好处。





分享到:
评论

相关推荐

    json对象及数组键值的深度大小写转换问题详解.docx

    ### JSON对象及数组键值的深度大小写转换问题详解 #### 概述 在实际的软件开发过程中,尤其是在处理前后端交互数据时,经常会遇到JSON数据格式的问题。一种常见的问题是后端返回的数据键名(key names)全部为大写...

    json对象及数组键值的深度大小写转换问题详解

    主要给大家介绍了关于json对象及数组键值的深度大小写转换问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。

    Java实现按照大小写字母顺序排序的方法

    本文详细介绍了Java实现按照大小写字母顺序排序的方法,涉及到Java数组遍历、编码转换、判断等相关操作技巧。通过本文,读者可以了解如何使用Java实现按照大小写字母顺序排序的方法,并应用于实际编程中。 知识点...

    C# 读取数组Json文件

    数组在JSON中用方括号`[]`表示,对象用大括号`{}`表示。例如,一个包含数组的JSON文件可能如下所示: ```json [ { "name": "Alice", "age": 30 }, { "name": "Bob", "age": 25 } ] ``` 在C#中,我们可以...

    VB使用数组分类统计字符

    例如,创建一个包含10个字符的数组,可以这样写: ```vb Dim chars(9) As Char ``` 这里的`chars`是数组名,`(9)`表示数组的大小,由于索引从0开始,所以实际包含了10个元素。 三、填充数组 填充数组可以使用循环...

    Object-c字符串数组字典

    除此之外,NSString还提供了一些常用的方法,如拼接字符串、求子字符串、字符串转换、比较字符串以及大小写转换等。 ### 数组(NSArray & NSMutableArray) 数组在Objective-C中由NSArray类管理,它提供了一个有序...

    轻松入门MATLAB:入门matlab单元数组深入学习.zip

    结构数组和单元数组都可用于存储混合类型的数据,但结构数组以键值对的形式组织数据,而单元数组是以位置顺序存储。 6. 单元数组在实际应用中的例子: - 在文件读写中,可以使用单元数组存储不同类型的文件信息,...

    PHP性能优化方式

    4. **数组键值的表示**:在PHP中,数组键值用引号或不引号都可以,但无引号的字符串键会转换为数字键,这可能会导致意外的行为。为了清晰和一致性,建议始终为字符串键加上引号。 其次,针对PHP周边问题的优化: 1...

    excel导出为json

    在JSON规范中,键是大小写敏感的。在导出Excel时,用户可以选择是否将所有键转换为小写,以保持一致性或遵循特定的编码规范。 四、编码格式 JSON文件通常使用UTF-8编码,因为它支持多种语言字符,且是网络传输的...

    PHP中的数组处理函数实例总结

    第一个参数是要转换的数组,第二个参数用来指定大小写转换的方式,CASE_UPPER表示转为大写,CASE_LOWER表示转为小写。 ```php $arr1 = array("a" =&gt; "Lamp", "db" =&gt; "database", "LANGUAGE" =&gt; "PHP"); print_r...

    matlab编程和数据类型函数.docx

    - regexp和regexpi:在字符串中匹配正则表达式,regexpi不区分大小写。 - sprintf:将格式化的数据写入字符串。 - sscanf:从字符串中读取格式化数据。 - strcat:沿水平方向连接字符串。 - strcmp和strcmpi:...

    Qt处理JSON数据(内含数组)并保存至excel表格

    QJsonDocument用于读写JSON文档,而QJsonObject则代表一个JSON对象,可以存储键值对。对于数组,我们使用QJsonArray,它是一个包含QJsonValue对象的容器。 处理JSON数据的第一步是解析JSON字符串。例如,如果你有一...

    浅谈php数组array_change_key_case() 函数和array_chunk()函数

    - `$input`:这是需要改变键值大小写的数组。 - `$case`:可选参数,可以设置为 `CASE_LOWER`(默认)以转换为小写,或者设置为 `CASE_UPPER` 以转换为大写。 例如: ```php $input_array = array('a' =&gt; 'Java'...

    php计算数组相同值出现次数的代码(array_count_values)

    如果需要不区分大小写地统计,可以在统计之前对数组中的字符串值统一进行大小写转换。 总结来说,array_count_values()是PHP中一个非常实用的函数,适用于快速统计数组中各值出现的频率。它能够帮助开发者高效地...

    基于PHP中的常用函数回顾

    1. **array_change_key_case**:这个函数用于将数组的所有键名转换为全部小写或大写,这对于在不区分大小写的情况下查找数组元素非常有用。 2. **array_chunk**:当需要将大数组拆分成多个小数组时,可以使用array_...

    《PHP编程最快明白》第三讲:php数组

    `natsort()`函数执行自然排序,适合处理数字字符串,如"10", "2", "100",而`natcasesort()`与之类似,但不区分大小写。`array_reverse()`函数则用于反向排序数组。 实例10中,`array_rand()`函数用于从数组中随机...

    将对象转换为json串的工具类.pdf

    对于每个setter方法,它获取对应的字段名,处理首字母大小写,然后尝试获取字段的值。根据字段类型,如基本类型、Integer、Long、Float、Double、String或Date,它会以不同的方式将字段值转化为JSON格式。如果字段...

    2014年辛星PHP重点函数讲解夏季版

    在字符串操作方面,文章虽然没有提供具体内容,但提到会讲解字符串函数,这通常包括字符串的拼接、替换、截取、大小写转换等常见操作。 日期时间函数允许开发者处理日期和时间,例如,获取当前时间戳、格式化日期等...

Global site tag (gtag.js) - Google Analytics