Laravel从集合中删除项目

时间:2017-10-19 11:19:44

标签: php laravel

目前我有这个系列:

return $items->map(function ($item) use ($location, $amount) {
    if($item->is_active) {
        return $this->calculate($item, array_values($location));
    }
 })

当if语句为false时,我想从集合中删除该项。我该怎么做?

已经尝试过:

return $items->map(function ($item, $itemKey) use ($location, $amount, $items) {
    if($item->is_active) {
        return $this->calculate($item, array_values($location));
    }

    $items->forget($itemKey);
})

但那不起作用?

1 个答案:

答案 0 :(得分:2)

要根据条件从集合中删除项目,您可以使用filterreject方法。

您的代码应如下所示:

return $items->filter(function ($item) {
    return $item->is_active;
})->map(function ($item) use ($location, $amount, $items) {        
    return $this->calculate($item, array_values($location));
})