栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Laravel集合将数组转换为对象

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Laravel集合将数组转换为对象

问题在于该

filter()
方法不会为基础集合数组重新设置密钥。因此,Collection仍表示一个数组,只是您的数组看起来像这样:

[    4 => Object4,    7 => Object7,]

尽管这在PHP中是一个非常有效的数组,但在JSON中却不是一个合适的数组。由于无法将其表示为JSON中的数组,因此将其转换为JSON中的对象。

为了使它正确地表示为JSON中的数组,您只需要重新输入Collection数组即可。为此的正确方法是

values()
方法。它所做的只是
array_values
在基础数组上调用。这将使上面的数组变成:

[    0 => Object4,    1 => Object7,]

现在,这是JSON可以理解的适当数字索引数组,它将被视为数组而不是对象。

虽然

flatten
可能适用于此特定情况(您的集合是Eloquent模型的集合),但它实际上不是正确的方法,并且可能导致意想不到的后果。此外,它将执行很多不需要的额外逻辑。最好的选择是对要达到的目标使用正确的方法,那就是该
values()
方法。

$obj = Cars::with('brand')->orderBy('id')->get();return $obj->filter(function($value, $key)    {        return $value->display == true;    })    ->values();


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/404178.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号