@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]
]
|