Метод values
Метод values применяется к коллекции и возвращает новый экземпляр коллекции, в котором все ключи сброшены и заменены на числовые индексы (0, 1, 2, ...). Это особенно полезно после применения методов, которые изменяют ключи коллекции, например filter или forget. Метод не принимает никаких параметров и всегда возвращает коллекцию с нормализованными индексами.
Синтаксис
<?php
collect($array)->values();
?>
Пример
Давайте создадим коллекцию с ассоциативными ключами и применим к ней метод values:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Collection;
class ExampleController extends Controller
{
public function index()
{
$collection = collect([
'name' => 'John',
'age' => 30,
'city' => 'New York'
]);
$res = $collection->values();
return $res->all();
}
}
?>
Результат выполнения кода:
["John", 30, "New York"]
Как видите, ассоциативные ключи были заменены на числовые индексы.
Пример
Метод values особенно полезен после удаления элементов из коллекции:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Collection;
class ExampleController extends Controller
{
public function index()
{
$collection = collect([1, 2, 3, 4, 5]);
$filtered = $collection->filter(function ($item) {
return $item > 2;
});
$res = $filtered->values();
return $res->all();
}
}
?>
Результат выполнения кода:
[3, 4, 5]
Без метода values индексы в коллекции остались бы прежними (2, 3, 4), но после применения метода они сбрасываются в нормальный порядок.
Пример
Применение метода values после удаления конкретных ключей:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Collection;
class ExampleController extends Controller
{
public function index()
{
$collection = collect([
'a' => 'article 1',
'b' => 'article 2',
'c' => 'article 3',
'd' => 'article 4'
]);
$filtered = $collection->forget(['b', 'd']);
$res = $filtered->values();
return $res->all();
}
}
?>
Результат выполнения кода:
["article 1", "article 3"]