Обновить значение Laravel Collection

$collection = collect([
    [
        'name' => 'Test1',
        'text' => 'Text1',
        'year' => '2020'
    ],
    [
        'name' => 'Test2',
        'text' => 'Text2',
        'year' => '2020'
    ],
    [
        'name' => 'Test3',
        'text' => 'Text3',
        'year' => '2020'
    ]
]);

Имеется данная коллекция, как можно заменить 'Text2' так, чтобы сохранился ключ[1] этой записи?


Ответы (2 шт):

Автор решения: user9519595

Illuminate\Support\Collection имплементирует интерфейс ArrayAccess, поэтому просто попробуйте обратитъся к ключу объекта как к массиву $collection[1]['text'] = 'your value';.

→ Ссылка
Автор решения: ANDREW_FROST

Нашёл решение:

$newCollection = $collection->map(function ($item, $index) {
    if ($index == 1) {
        $item['text'] = 'New Text2';
    }

    return $item;
});
→ Ссылка