Laravel Tutorials

Remove Collection Items Directly with Laravel's forget Method

Published
Remove Collection Items Directly with Laravel's forget Method image

Laravel's collection forget method provides a straightforward approach to remove elements by their keys while modifying the original collection in place.

The forget method removes items by their keys:

$collection = collect(['email' => 'user@example.com', 'role' => 'admin']);
 
// Remove a single key
$collection->forget('email');
// Result: ['role' => 'admin']
 
// Remove multiple keys
$collection->forget(['email', 'role']);
// Result: []

Here's how you might use it in a shopping cart manager:

class CartManager
{
protected $items;
 
public function __construct(array $cartItems)
{
$this->items = collect($cartItems);
}
 
public function removeItems(string|array $productIds)
{
$this->items->forget($productIds);
 
return $this;
}
 
public function clearExpiredDiscounts()
{
$expiredCoupons = ['summer_sale', 'flash_deal', 'early_bird'];
 
$this->items->forget($expiredCoupons);
 
return $this;
}
 
public function removeUnavailableProducts(array $outOfStock)
{
// Remove specific out-of-stock items
$this->items
->forget(
collect($outOfStock)
->map(fn($sku) => "product_{$sku}")
->all()
);
 
return $this;
}
}
 
$cart = new CartManager([
'product_123' => ['qty' => 2, 'price' => 29.99],
'shipping' => 9.99,
'summer_sale' => -5.00,
'product_456' => ['qty' => 1, 'price' => 15.50]
]);
 
$cart->clearExpiredDiscounts()
->removeUnavailableProducts(['456']);

Unlike other collection methods, forget modifies the original collection, making it perfect for direct data manipulation.

Harris Raftopoulos photo

Senior Software Engineer • Staff & Educator @ Laravel News • Co-organizer @ Laravel Greece Meetup

Sponsored

serpapi logo
SerpApi

The Web Search API for Your LLM and AI Applications

Visit SerpApi

The latest

View all →
Queue totalSize() and JobInterrupted Event in Laravel 13.31 image

Queue totalSize() and JobInterrupted Event in Laravel 13.31

Read article
Find Unexpected Test Inputs with Fuzz for Pest image

Find Unexpected Test Inputs with Fuzz for Pest

Read article
Laravel Rulebook: Business Rules That Change by Date image

Laravel Rulebook: Business Rules That Change by Date

Read article
Taylor disabled GitHub Issues on most Laravel open-source packages. image

Taylor disabled GitHub Issues on most Laravel open-source packages.

Read article
Exclude Vendor and Default Commands in `php artisan dev` image

Exclude Vendor and Default Commands in `php artisan dev`

Read article
The Laracon Archive image

The Laracon Archive

Read article