骆驼命名法转小写分隔
来源:互联网 发布:淘宝自动打款时间 编辑:程序博客网 时间:2024/05/20 04:11
/** * API相关工具类 * * @package service * @author lizengwang <lizengwang@gmail.com> * @version 0.1 2015-8-10 20:58:55 * @copyright (C) 2015 lizengwang <lizengwang@gmail.com> */class apiTools{ /** * 统一API对完的输出转换,主要为 array('CourseName'=>'demo','Course_Num'=>12) 转换为 array('course_name' => 'demo','course_num'=>12) * @param array $data 待转换数组 * @param array $exclude 排除列表,例如:array('Course_Num'=>'COURSENUM') ,上述数组会转换为 array('course_name' => 'demo','COURSENUM'=>12) * @return array */ public static function camelArray2LowerArray(array $data,array $exclude = array()) { $result = array(); foreach ($data as $key=>$node) { //如果存在特殊处理的key,直接替换 if (array_key_exists($key,$exclude) && !empty($exclude[$key])) { is_array($node) ? $result[$exclude[$key]] = self::camelArray2LowerArray($node,$exclude) : $result[$exclude[$key]] = $node; } else { $new_key = self::camelCase2SplitLower($key); is_array($node) ? $result[$new_key] = self::camelArray2LowerArray($node,$exclude) : $result[$new_key] = $node; } } return $result; } /** * 分隔骆驼命名法,获取分隔后的小写字母,分隔符默认下划线 * @param $str 待转换字符串 * @param string $split_tag 分隔符 * @return string */ private static function camelCase2SplitLower($str,$split_tag = '_') { $result = ''; $prev_code = 0; $str = strval($str); $str_length = strlen($str); $split_tag_code = ord($split_tag); for ($i = 0;$i<$str_length;$i++) { $ascii_code = ord($str[$i]); //如果是大写字母,转成小写字母,如果前一个字符为分隔符或者前一个字符为大写字母则不增加新的分隔符; if ($ascii_code >= 65 && $ascii_code <= 90) { if ($prev_code == 0 || $prev_code == $split_tag_code ||($prev_code >= 65 && $prev_code <= 90) ) { $result .= chr($ascii_code+32); } else { $result .= $split_tag.chr($ascii_code+32); } } else { $result .= $str[$i]; } $prev_code = $ascii_code; } return $result; }}
0 0
- 骆驼命名法转小写分隔
- 骆驼命名法
- 骆驼命名法
- 骆驼命名
- 骆驼命名法,帕斯卡命名法和匈牙利命名法
- 骆驼命名法,帕斯卡命名法和匈牙利命名法
- 匈牙利命名法、骆驼命名法和帕斯卡命名法
- 匈牙利命名法、骆驼命名法和帕斯卡命名法
- 骆驼命名法,帕斯卡命名法和匈牙利命名法
- 匈牙利命名法、骆驼命名法和帕斯卡命名法
- 骆驼命名法,帕斯卡命名法和匈牙利命名法
- 骆驼命名法,帕斯卡命名法和匈牙利命名法
- 匈牙利命名法、骆驼命名法和帕斯卡命名法
- 骆驼命名法,帕斯卡命名法和匈牙利命名法
- 匈牙利命名法 骆驼命名法 帕斯卡命名法
- 匈牙利命名法,骆驼命名法和帕斯卡命名法
- 匈牙利命名法、骆驼命名法和帕斯卡命名法
- 匈牙利命名法、骆驼命名法和帕斯卡命名法
- 构造函数delete和default关键字分析
- String与StringBuffer的区别
- 数组
- 20-03-其他对象API(Math类)
- cocos2d-x 调用iOS摄像头 c++ 和 OC混编
- 骆驼命名法转小写分隔
- 语义分析的一些方法(三)
- 察看当前数据库被锁的对象
- 用c#编写爬虫在marinetraffic下载船只图片
- 20-04-其他对象API(Date类)
- 积跬步,聚小流------Bootstrap学习记录(3)
- 日经社説 20150811 粘り強く「イスラム国」掃討を
- nodejs 播放媒体文件
- 20-05-其他对象API(Date类-日期对象转成字符串)