查询构造器结果--对象数组互转方法

一个小小的示例方法…

    /**
     * 数组转换对象
     *
     * @param $e 数组
     * @return object|void
     */
    public function arrayToObject($e)
    {

        if (gettype($e) != 'array') return;
        foreach ($e as $k => $v) {
            if (gettype($v) == 'array' || getType($v) == 'object')
                $e[$k] = (object)$this->arrayToObject($v);
        }
        return (object)$e;
    }

    /**
     * 对象转换数组
     *
     * @param $e StdClass对象实例
     * @return array|void
     */
    public function objectToArray($e)
    {
        $e = (array)$e;
        foreach ($e as $k => $v) {
            if (gettype($v) == 'resource') return;
            if (gettype($v) == 'object' || gettype($v) == 'array')
                $e[$k] = (array)$this->objectToArray($v);
        }
        return $e;
    }

结果

  • 数组转对象
    file

  • 对象转数组
    file

PS

感谢关注「GitHub 热门」公众号,带你了解技术圈内热门新鲜事!

file

本作品采用《CC 协议》,转载必须注明作者和本文链接
感谢关注「GitHub 热门」公众号
本帖由 hustnzj 于 4年前 加精
Destiny
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 6
Summer

运行后的结果嘞

8年前 评论
Destiny

@Summer 纳尼, 还要结果..好的

8年前 评论
Destiny

开始这方法有点BUG, BUG以修复......DB的童鞋请放心使用!

8年前 评论

->get()->toArray()之后再用你的这个方法就完美了

4年前 评论

Laravel5.4及以后 不再支持在配置文件中定制 PDO 「fetch mode」 的功能。取而代之, PDO::FETCH_OBJ 一直可以使用。如果你仍然想要为你的应用程序自定义提取模式,你可以监听新的 Illuminate\Database\Events\StatementPrepared 事件(在app/Providers/EventServiceProvier 的boot方法中加入如下代码):

Event::listen(StatementPrepared::class, function ($event) {
$event->statement->setFetchMode(…);
});

请问跟这种方法对比,有什么优缺点吗

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!