PHP下划线和驼峰字符串相互转换

PHP下划线和驼峰字符串相互转换

class AppBlogString
{
    /*
     * 下划线转驼峰
     */
    public static function convertUnderline($str)
    {
        $str = preg_replace_callback('/([-_]+([a-z]{1}))/i', function ($matches) {
            return strtoupper($matches[2]);
        }, $str);
        return $str;
    }

    /*
     * 驼峰转下划线
     */
    public static function humpToLine($str)
    {
        $str = preg_replace_callback('/([A-Z]{1})/', function ($matches) use ($str) {
            if ($matches[0] != substr($str, 0, 1))
                return '_' . strtolower($matches[0]);
            else
                return strtolower($matches[0]);
        }, $str);
        return $str;
    }

    public static function convertHump(array $data)
    {
        $result = [];
        foreach ($data as $key => $item) {
            if (is_array($item) || is_object($item)) {
                $result[$this->humpToLine($key)] = $this->convertHump((array) $item);
            } else {
                $result[$this->humpToLine($key)] = $item;
            }
        }
        return $result;
    }
}
上一篇 PHP中文GBK与UTF-8编码互转
下一篇 Windows下Laravel环境搭建
目录
文章列表
1 Android NDK基础23:C++_类型转换_IO流_对象持久化
Android NDK基础23:C++_类型转换_IO流_对象持久化
2
Flutter中使用WebView
Flutter中使用WebView
3
Grafana插件扩展之SimpleJson安装
Grafana插件扩展之SimpleJson安装
4
矩阵特征值和特征向量详细计算过程
矩阵特征值和特征向量详细计算过程
5
玩转Redis - 如何高效访问Redis中的海量数据
玩转Redis - 如何高效访问Redis中的海量数据
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。