将下划线格式的字符串转换为骆峰格式的字符串

一、方法一:

 1 <?php
 2 /**
 3  * 将下划线风格的名称转换为骆峰格式
 4  * @param string $string 骆峰格式字符串
 5  * @param boolean $isFirstLetter 是否将第一个字符也转换成大写,默认为小写
 6  * @return string
 7  */
 8 function toCamelCase($string, $isFirstLetter = false) {
 9     $arr = explode('_', $string);
10     foreach ($arr as $key => $value) {
11         $flag = $key > 0 || $isFirstLetter;
12         $arr[$key] = $flag ? ucfirst($value) : $value;
13     }
14     return implode('', $arr);
15 }
16 $arr = [
17     toCamelCase('to_camel_case'),
18     toCamelCase('simple_2'),
19     toCamelCase('simple_XML'),
20     toCamelCase('PDFLoad'),
21     toCamelCase('AStringToArray'),
22     toCamelCase('test123_some_string'),
23     toCamelCase('start_middle_end_eof'),
24     toCamelCase('abc_def_123_deny_success', true),
25 ];
26 print_r($arr);
27 
28 运行结果:
29 Array
30 (
31     [0] => toCamelCase
32     [1] => simple2
33     [2] => simpleXML
34     [3] => PDFLoad
35     [4] => AStringToArray
36     [5] => test123SomeString
37     [6] => startMiddleEndEof
38     [7] => AbcDef123DenySuccess
39 )

二、方法二:

 1 <?php
 2 /**
 3  * 将下划线风格的名称转换为骆峰格式
 4  * @param string $string 骆峰格式字符串
 5  * @param boolean $isFirstLetter 是否将第一个字符也转换成大写,默认为小写
 6  * @return string
 7  */
 8 function toCamelCase($string, $isFirstLetter = false) {
 9     $string = str_replace(' ', '', ucwords(str_replace('_', ' ', $string)));
10     if ($isFirstLetter) {
11         return $string;
12     }
13     return lcfirst($string);
14 
15 }
16 $arr = [
17     toCamelCase('to_camel_case'),
18     toCamelCase('simple_2'),
19     toCamelCase('simple_XML'),
20     toCamelCase('PDFLoad'),
21     toCamelCase('AStringToArray'),
22     toCamelCase('test123_some_string'),
23     toCamelCase('start_middle_end_eof'),
24     toCamelCase('abc_def_123_deny_success', true),
25 ];
26 print_r($arr);
27 
28 运行结果:
29 Array
30 (
31     [0] => toCamelCase
32     [1] => simple2
33     [2] => simpleXML
34     [3] => pDFLoad
35     [4] => aStringToArray
36     [5] => test123SomeString
37     [6] => startMiddleEndEof
38     [7] => AbcDef123DenySuccess
39 )

三、方法三:

 1 <?php
 2 /**
 3  * 将下划线风格的名称转换为骆峰格式
 4  * @param string $string 骆峰格式字符串
 5  * @param boolean $isFirstLetter 是否将第一个字符也转换成大写,默认为小写
 6  * @return string
 7  */
 8 function toCamelCase($string, $isFirstLetter = false) {
 9     $func = $isFirstLetter ? 'ucfirst' : 'lcfirst';
10     $string = $func(implode('', array_map(function ($string) {
11         return ucfirst($string);
12     }, explode('_', $string))));
13     return $string;
14 }
15 $arr = [
16     toCamelCase('to_camel_case'),
17     toCamelCase('simple_2'),
18     toCamelCase('simple_XML'),
19     toCamelCase('PDFLoad'),
20     toCamelCase('AStringToArray'),
21     toCamelCase('test123_some_string'),
22     toCamelCase('start_middle_end_eof'),
23     toCamelCase('abc_def_123_deny_success', true),
24 ];
25 print_r($arr);
26 
27 运行结果:
28 Array
29 (
30     [0] => toCamelCase
31     [1] => simple2
32     [2] => simpleXML
33     [3] => pDFLoad
34     [4] => aStringToArray
35     [5] => test123SomeString
36     [6] => startMiddleEndEof
37     [7] => AbcDef123DenySuccess
38 )

四、方法四:

 1 <?php
 2 /**
 3  * 将下划线风格的名称转换为骆峰格式
 4  * @param string $string 骆峰格式字符串
 5  * @param boolean $isFirstLetter 是否将第一个字符也转换成大写,默认为小写
 6  * @return string
 7  */
 8 function toCamelCase($string, $isFirstLetter = false) {
 9     return array_reduce(explode('_', strtolower($string)), function ($string, $value) use($isFirstLetter) {
10         $string .= $isFirstLetter ? ucfirst($value) : lcfirst($value);
11         return $string;
12     }, '');
13 }
14 $arr = [
15     toCamelCase('to_camel_case'),
16     toCamelCase('simple_2'),
17     toCamelCase('simple_XML'),
18     toCamelCase('PDFLoad'),
19     toCamelCase('AStringToArray'),
20     toCamelCase('test123_some_string'),
21     toCamelCase('start_middle_end_eof'),
22     toCamelCase('abc_def_123_deny_success', true),
23 ];
24 print_r($arr);
25 
26 运行结果:
27 Array
28 (
29     [0] => tocamelcase
30     [1] => simple2
31     [2] => simplexml
32     [3] => pdfload
33     [4] => astringtoarray
34     [5] => test123somestring
35     [6] => startmiddleendeof
36     [7] => AbcDef123DenySuccess
37 )

五、方法五:

 

posted @ 2015-08-28 08:05  iYunBlog  阅读(258)  评论(0编辑  收藏  举报