如何解决Laravel-如何从集合中删除密钥?
我的数据如下:
[
{
"id": "3","title": "Boruto's Photo","is_lottery": 1,"price": 10
},{
"id": "4","title": "Misuki's Photo","is_lottery": 0,"price": 20
}
]
我要过滤is_lottery == false,从此收藏中删除价格键。输出为:
[
{
"id": "3",}
]
解决方法
您可以这样做
$json = '[
{
"id": "3","title": "Boruto\'s Photo","is_lottery": 1,"price": 10
},{
"id": "3","title": "Misuki\'s Photo","is_lottery": 0,"price": 20
}
]';
$filtered = collect(json_decode($json,true))->map(function ($array) {
if (!$array['is_lottery']) {
unset($array['price']);
}
return $array;
});
对于本机PHP,您可以这样做
$data = json_decode($json,true);
foreach ($data as $index => $array) {
if (!$array['is_lottery']) {
unset($array['price']);
}
$data[$index] = $array;
}
,
您可以将名为$ newCollection的新变量声明为最终集合。使用foreach()
来迭代您的集合,然后使用is_lottery
从集合中删除unset()
,然后将其推入$ newCollection,这是您如何使用foreach
删除它的示例:
$newCollection = [];
foreach ($photos as $key => $value) {
if ($value["is_lottery"] == 0) {
unset($value["price"]);
}
array_push($newCollection,$value);
}
,或者您可以尝试使用forget
将其从此ref从集合中删除(未经测试):
How to unset (remove) a collection element after fetching it?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。