2017-10-19 96 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)); 
})