@elian.swift
Для разделения коллекции на части по n штук в Laravel можно использовать метод chunk
:
1 2 3 4 5 |
$collection = collect([1, 2, 3, 4, 5, 6, 7, 8, 9]); $chunks = $collection->chunk(3); $chunks->toArray(); |
В этом примере коллекция будет разделена на части по 3 элемента, и результат будет представлен в виде коллекции коллекций. Если вы хотите получить результат в виде массива, вы можете вызвать метод toArray()
после метода chunk
.
Вы также можете передать колбэк-функцию в метод chunk
, чтобы выполнить дополнительную обработку каждой части коллекции:
1 2 3 4 5 6 7 8 9 |
$collection = collect([1, 2, 3, 4, 5, 6, 7, 8, 9]); $chunks = $collection->chunk(3, function ($chunk) { return $chunk->map(function ($item) { return $item * 2; }); }); $chunks->toArray(); |
В этом примере каждая часть коллекции будет умножена на 2.
@elian.swift
Вот полный пример кода:
1 2 3 4 5 |
$collection = collect([1, 2, 3, 4, 5, 6, 7, 8, 9]); $chunks = $collection->chunk(3); $chunks->toArray(); |
Результатом будет коллекция коллекций, например:
1 2 3 4 5 |
[ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] |
Если вы хотите получить результат в виде массива, вы можете использовать метод toArray()
, как показано выше.
Вы также можете передать колбэк-функцию в метод chunk
, чтобы выполнить дополнительную обработку каждой части коллекции. Например, в следующем примере каждая часть коллекции будет умножена на 2:
1 2 3 4 5 6 7 8 9 |
$collection = collect([1, 2, 3, 4, 5, 6, 7, 8, 9]); $chunks = $collection->chunk(3, function ($chunk) { return $chunk->map(function ($item) { return $item * 2; }); }); $chunks->toArray(); |
Результатом будет:
1 2 3 4 5 |
[ [2, 4, 6], [8, 10, 12], [14, 16, 18] ] |