将下划线格式的字符串转换为骆峰格式的字符串
一、方法一:
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 )
五、方法五: