如何在 Laravel 中重写循环以收集函数?

How to rewrite loop to collection functions in Laravel?

我有一个循环,它迭代集合并查找状态为 1 的对象,然后删除它。

如何在 Laravel 中的集合函数上重写此代码?

$announcements->every(function ($value) use ($announcements) {
            foreach($value->offers as $k => $v) {
                if ($v->status == 1) {
                    unset($value->offers[$k]->publisher);
                }
            }
        });

实际上 every() method checks if all items in the collection return true. You should use each() method 循环遍历所有项目并单独检查它们。

此外,如果您想从 collection 中删除一些项目,您可以使用 filter() method:

$fitlered = $announcements->filter(function($value) {
    return $value->status !== 1;
});