Метод forget
Метод forget применяется к коллекции и возвращает новый экземпляр коллекции без удалённых элементов. Первым параметром передаётся ключ элемента, который нужно удалить. Если нужно удалить несколько элементов, можно передать массив ключей. Метод изменяет исходную коллекцию.
Синтаксис
<?php
$collection->forget($key);
?>
Пример
Давайте создадим коллекцию и удалим один элемент по ключу:
<?php
use Illuminate\Support\Collection;
$collection = new Collection([
'name' => 'John',
'age' => 30,
'city' => 'New York'
]);
$res = $collection->forget('age');
echo $res->toJson();
?>
Результат выполнения кода:
{"name":"John","city":"New York"}
Пример
Удалим несколько элементов с помощью массива ключей:
<?php
use Illuminate\Support\Collection;
$collection = new Collection([
'id' => 1,
'name' => 'John',
'email' => 'john@example.com',
'age' => 30,
'city' => 'New York'
]);
$res = $collection->forget(['email', 'city']);
echo $res->toJson();
?>
Результат выполнения кода:
{"id":1,"name":"John","age":30}
Пример
Работа с нумерованной коллекцией и удаление по индексу:
<?php
use Illuminate\Support\Collection;
$collection = new Collection(['a', 'b', 'c', 'd', 'e']);
$res = $collection->forget(2);
echo $res->toJson();
?>
Результат выполнения кода:
{"0":"a","1":"b","3":"d","4":"e"}
Пример
Использование метода с коллекцией объектов:
<?php
use Illuminate\Support\Collection;
$users = new Collection([
(object) ['id' => 1, 'name' => 'John', 'age' => 30],
(object) ['id' => 2, 'name' => 'Jane', 'age' => 25],
(object) ['id' => 3, 'name' => 'Bob', 'age' => 35]
]);
$res = $users->forget(1);
foreach ($res as $user) {
echo $user->name . ', ';
}
?>
Результат выполнения кода:
"John, Bob, "
Пример
Удаление несуществующего ключа не вызывает ошибку:
<?php
use Illuminate\Support\Collection;
$collection = new Collection(['a' => 1, 'b' => 2, 'c' => 3]);
$res = $collection->forget('nonexistent');
echo $res->toJson();
?>
Результат выполнения кода:
{"a":1,"b":2,"c":3}