`
长虫的梅子
  • 浏览: 42180 次
  • 性别: 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对象及数组键值的深度大小写转换问题详解.docx

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

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

    [removed]所有的笔记

    Java脚本从javascript的历史以及ES6的所有功能开始的所有注释 var,let和const功能及其类型排列和吊装递增和递减运算符,用于循环,切换大小写,如果其他则while,do-while数组迭代方法,如forEach,map,for for ...

    51单片机C语言编程基础及实例

    本文由pengliuhua2005贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 51 单片机设计跑马灯的程序用(c 语言)编写 P1 口接 8 个发光二极管共阳,烧入下面程序 #include ...

    delphi 开发经验技巧宝典源码

    0072 如何实现金额大小写转换的算法 46 0073 如何计算时钟的指针位置 47 0074 如何计算汉字笔划 48 0075 如何计算两个日期之间的天数、周数、分钟数 49 0076 如何实现数字斜塔 50 0077 如何实现杨辉三角...

    易语言辅助模块

    参数 文件数组, 文本型, 参考 数组, 装载文件名的数组变量,请用循环取出 .子程序 枚举子目录, 整数型, 公开, 成功返回(子目录数量),错误或无子目录返回(0) .参数 全路径, 文本型, , 欲枚举的目录路径,如:C:\...

    delphi 开发经验技巧宝典源码06

    0072 如何实现金额大小写转换的算法 46 0073 如何计算时钟的指针位置 47 0074 如何计算汉字笔划 48 0075 如何计算两个日期之间的天数、周数、分钟数 49 0076 如何实现数字斜塔 50 0077 如何实现杨辉三角...

    vue语法.rar

    块级作用域可以直接些一堆大括号,以后就不用写自执行函数了 2.var与for循环 3.let与for循环 十一、const的用法 const声明一个常量,一旦声明后就不能修改了 1.如果声明后再去修改的话就会报错 2.只声明不...

    Java范例开发大全 (源程序)

     实例92 字母大小写转换 120  实例93 去除多余的空白 120  实例94 原始数组类型的String形式 121  实例95 Java合法标识符 122  实例96 显示一周各星期的名称 123  实例97 构造空心方框 124  实例98 这...

    java范例开发大全(pdf&源码)

    实例92 字母大小写转换 120 实例93 去除多余的空白 120 实例94 原始数组类型的String形式 121 实例95 Java合法标识符 122 实例96 显示一周各星期的名称 123 实例97 构造空心方框 124 实例98 这一天是星期几 125 实例...

    java范例开发大全源代码

     实例92 字母大小写转换 120  实例93 去除多余的空白 120  实例94 原始数组类型的String形式 121  实例95 Java合法标识符 122  实例96 显示一周各星期的名称 123  实例97 构造空心方框 124  实例...

    java范例开发大全

    实例92 字母大小写转换 120 实例93 去除多余的空白 120 实例94 原始数组类型的String形式 121 实例95 Java合法标识符 122 实例96 显示一周各星期的名称 123 实例97 构造空心方框 124 实例98 这一天是星期几 125 实例...

    Java范例开发大全(全书源程序)

    实例92 字母大小写转换 120 实例93 去除多余的空白 120 实例94 原始数组类型的String形式 121 实例95 Java合法标识符 122 实例96 显示一周各星期的名称 123 实例97 构造空心方框 124 实例98 这一天是星期几 ...

    易化的Python-易语言

    是否全大写文本_是否全字母文本_标题化文本_首字母转大写文本_到小写文本_到大写文本_大小写字符到小写文本_大小写翻转文本_拼接文本_居中文本_左对齐文本_右对齐文本_右对齐0文本_删左边全部空格文本_删右边全部...

    xheditor-1.1.14

    参数1:工具按钮名称(不区分大小写),例:Link、img 说明:此函数可以在插件内部或者外部Javascript代码中进行调用 showModal:显示模式窗口 参数1:模式窗口的标题title 参数2:模式窗口的内容content 参数3:模式...

    JAVA面试题最全集

    如果要按照键值保存或者访问数据,使用什么数据结构? 要掌握Collection相关的接口和类的使用 56.使用StringBuffer类与String类进行字符串连接时有何区别? 57.调用Thread类的destroy()方法有什么后果? 58.多...

Global site tag (gtag.js) - Google Analytics