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

一个小小的示例方法…

    /**
     * 数组转换对象
     *
     * @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 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 6
Summer

运行后的结果嘞

7年前 评论
Destiny

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

7年前 评论
Destiny

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

7年前 评论

->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(…);
});

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

3年前 评论

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