Метод times
Метод times является статическим методом класса Collection и предназначен для создания коллекции с указанным количеством элементов. Первым параметром передаётся количество элементов, которые необходимо создать, вторым - замыкание, которое определяет значение каждого элемента. Если замыкание не передано, коллекция будет заполнена числами от 1 до заданного количества.
Синтаксис
<?php
use Illuminate\Support\Collection;
Collection::times($count, $callback);
?>
Пример
Создадим коллекцию из пяти элементов без использования замыкания:
<?php
use Illuminate\Support\Collection;
$res = Collection::times(5);
echo $res;
?>
Результат выполнения кода:
[1, 2, 3, 4, 5]
Пример
Создадим коллекцию из трёх элементов, каждый из которых будет содержать строку:
<?php
use Illuminate\Support\Collection;
$res = Collection::times(3, function ($index) {
return 'element-' . $index;
});
echo $res;
?>
Результат выполнения кода:
["element-1", "element-2", "element-3"]
Пример
Создадим коллекцию из четырёх элементов, где каждый элемент будет массивом с идентификатором и случайным числом:
<?php
use Illuminate\Support\Collection;
$res = Collection::times(4, function ($index) {
return ['id' => $index, 'value' => rand(1, 100)];
});
echo $res;
?>
Результат выполнения кода:
[{"id":1,"value":42},{"id":2,"value":17},{"id":3,"value":89},{"id":4,"value":56}]
Пример
Используем метод times для создания коллекции с данными для модели:
<?php
use Illuminate\Support\Collection;
$res = Collection::times(3, function ($index) {
return [
'name' => 'User ' . $index,
'email' => 'user' . $index . '@example.com',
'active' => $index % 2 == 0
];
});
echo $res;
?>
Результат выполнения кода:
[{"name":"User 1","email":"user1@example.com","active":false},{"name":"User 2","email":"user2@example.com","active":true},{"name":"User 3","email":"user3@example.com","active":false}]