创星网络[分享知识 传递快乐]

标题: 采用深度优先递归更换数组键值名 [打印本页]

作者: Jesse.Chan    时间: 2012-8-22 17:50
标题: 采用深度优先递归更换数组键值名
本帖最后由 Jesse.Chan 于 2012-8-22 17:55 编辑
  1.     /**
  2.      * @static 数组键名翻译成驼峰写法
  3.      * @author Neilsen.Chan 20120822
  4.      * @param $in 源数组
  5.      * @return array 输出数组
  6.      */
  7.     public static function arrKeysToCamelCase($in)
  8.     {
  9.         if(empty($in)||!is_array($in))
  10.             return $in;
  11.         $reCopyRes = array();
  12.         foreach($in as $key=>$val)
  13.         {
  14.             $reKey = self::ucFirstWord($key);
  15.             if(!is_array($val)){
  16.                 $reCopyRes[$reKey] = $val;
  17.             }else{
  18.                 $reCopyRes[$reKey] = self::arrKeysToCamelCase($val);
  19.             }
  20.         }
  21.         return $reCopyRes;
  22.     }

  23.     /**
  24.      * @static 将单词的首字母转换成大写(首单词除外)
  25.      * @author Neilsen.Chan 20120822
  26.      * @param $word 源单词字符串
  27.      * @return string 输出单词字符串
  28.      */
  29.     public static function ucFirstWord($word)
  30.     {
  31.         if(!is_string($word)){
  32.             return $word;
  33.         }else{
  34.             $wordArr = explode('_',$word);
  35.             if(!empty($wordArr)){
  36.                 $index = 0;
  37.                 foreach($wordArr as &$wd)
  38.                 {
  39.                     if($index==0){
  40.                         $index++;
  41.                         continue;
  42.                     }
  43.                     $wd = ucfirst($wd);
  44.                 }
  45.                 $outStr = implode('',$wordArr);
  46.                 return $outStr;
  47.             }else{
  48.                 return $word;
  49.             }
  50.         }
  51.     }
复制代码





欢迎光临 创星网络[分享知识 传递快乐] (http://bbs.cxweb.com.cn/) Powered by Discuz! X3