2017-10-19 100 views
1

目前我已经有了这个集合中删除项目:Laravel从收集

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

当if语句是假的我想从集合中删除的项目。我应该怎么做?

已经尝试过:

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

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

但是,这不是工作?

回答

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)); 
})