Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to unset (remove) a collection element after fetching it?

I have a collection which I want to iterate and modify while I fetch some of its elements. But I could't find a way or method to remove that fetched element.

$selected = [];  foreach ($collection as $key => $value) {       if ($collection->selected == true) {           $selected[] = $value;           unset($value);       } } 

This is just a representation of my question for demonstration.

After @Ohgodwhy advice the forget() function I checked it again and saw that I actually misunderstood the function. It was exactly as I was looking for.

So for working solution I have added $collection->forget($key) inside the if statement.

Below is the working solution of my problem, using @Ohgodwhy's solution:

$selected = [];  foreach ($collection as $key => $value) {       if ($collection->selected == true) {           $selected[] = $value;           $collection->forget($key);       } } 

(this is just a demonstration)

like image 669
Skeletor Avatar asked Jun 02 '16 09:06

Skeletor


1 Answers

You would want to use ->forget()

$collection->forget($key); 

Link to the forget method documentation

like image 144
Ohgodwhy Avatar answered Sep 20 '22 18:09

Ohgodwhy