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对象及数组键值的深度大小写转换问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
Java脚本从javascript的历史以及ES6的所有功能开始的所有注释 var,let和const功能及其类型排列和吊装递增和递减运算符,用于循环,切换大小写,如果其他则while,do-while数组迭代方法,如forEach,map,for for ...
本文由pengliuhua2005贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 51 单片机设计跑马灯的程序用(c 语言)编写 P1 口接 8 个发光二极管共阳,烧入下面程序 #include ...
0072 如何实现金额大小写转换的算法 46 0073 如何计算时钟的指针位置 47 0074 如何计算汉字笔划 48 0075 如何计算两个日期之间的天数、周数、分钟数 49 0076 如何实现数字斜塔 50 0077 如何实现杨辉三角...
参数 文件数组, 文本型, 参考 数组, 装载文件名的数组变量,请用循环取出 .子程序 枚举子目录, 整数型, 公开, 成功返回(子目录数量),错误或无子目录返回(0) .参数 全路径, 文本型, , 欲枚举的目录路径,如:C:\...
0072 如何实现金额大小写转换的算法 46 0073 如何计算时钟的指针位置 47 0074 如何计算汉字笔划 48 0075 如何计算两个日期之间的天数、周数、分钟数 49 0076 如何实现数字斜塔 50 0077 如何实现杨辉三角...
块级作用域可以直接些一堆大括号,以后就不用写自执行函数了 2.var与for循环 3.let与for循环 十一、const的用法 const声明一个常量,一旦声明后就不能修改了 1.如果声明后再去修改的话就会报错 2.只声明不...
实例92 字母大小写转换 120 实例93 去除多余的空白 120 实例94 原始数组类型的String形式 121 实例95 Java合法标识符 122 实例96 显示一周各星期的名称 123 实例97 构造空心方框 124 实例98 这...
实例92 字母大小写转换 120 实例93 去除多余的空白 120 实例94 原始数组类型的String形式 121 实例95 Java合法标识符 122 实例96 显示一周各星期的名称 123 实例97 构造空心方框 124 实例98 这一天是星期几 125 实例...
实例92 字母大小写转换 120 实例93 去除多余的空白 120 实例94 原始数组类型的String形式 121 实例95 Java合法标识符 122 实例96 显示一周各星期的名称 123 实例97 构造空心方框 124 实例...
实例92 字母大小写转换 120 实例93 去除多余的空白 120 实例94 原始数组类型的String形式 121 实例95 Java合法标识符 122 实例96 显示一周各星期的名称 123 实例97 构造空心方框 124 实例98 这一天是星期几 125 实例...
实例92 字母大小写转换 120 实例93 去除多余的空白 120 实例94 原始数组类型的String形式 121 实例95 Java合法标识符 122 实例96 显示一周各星期的名称 123 实例97 构造空心方框 124 实例98 这一天是星期几 ...
是否全大写文本_是否全字母文本_标题化文本_首字母转大写文本_到小写文本_到大写文本_大小写字符到小写文本_大小写翻转文本_拼接文本_居中文本_左对齐文本_右对齐文本_右对齐0文本_删左边全部空格文本_删右边全部...
参数1:工具按钮名称(不区分大小写),例:Link、img 说明:此函数可以在插件内部或者外部Javascript代码中进行调用 showModal:显示模式窗口 参数1:模式窗口的标题title 参数2:模式窗口的内容content 参数3:模式...
如果要按照键值保存或者访问数据,使用什么数据结构? 要掌握Collection相关的接口和类的使用 56.使用StringBuffer类与String类进行字符串连接时有何区别? 57.调用Thread类的destroy()方法有什么后果? 58.多...