Jesse.Chan 发表于 2012-8-22 17:50:47

采用深度优先递归更换数组键值名

本帖最后由 Jesse.Chan 于 2012-8-22 17:55 编辑

    /**
   * @static 数组键名翻译成驼峰写法
   * @author Neilsen.Chan 20120822
   * @param $in 源数组
   * @return array 输出数组
   */
    public static function arrKeysToCamelCase($in)
    {
      if(empty($in)||!is_array($in))
            return $in;
      $reCopyRes = array();
      foreach($in as $key=>$val)
      {
            $reKey = self::ucFirstWord($key);
            if(!is_array($val)){
                $reCopyRes[$reKey] = $val;
            }else{
                $reCopyRes[$reKey] = self::arrKeysToCamelCase($val);
            }
      }
      return $reCopyRes;
    }

    /**
   * @static 将单词的首字母转换成大写(首单词除外)
   * @author Neilsen.Chan 20120822
   * @param $word 源单词字符串
   * @return string 输出单词字符串
   */
    public static function ucFirstWord($word)
    {
      if(!is_string($word)){
            return $word;
      }else{
            $wordArr = explode('_',$word);
            if(!empty($wordArr)){
                $index = 0;
                foreach($wordArr as &$wd)
                {
                  if($index==0){
                        $index++;
                        continue;
                  }
                  $wd = ucfirst($wd);
                }
                $outStr = implode('',$wordArr);
                return $outStr;
            }else{
                return $word;
            }
      }
    }
页: [1]
查看完整版本: 采用深度优先递归更换数组键值名