微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Laravel-如何从集合中删除密钥?

如何解决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 举报,一经查实,本站将立刻删除。