---
title: "chunk() - поділ даних на частини"
url: https://laravelukraine.com/blog/chunk-podil-danix-na-castini
author: "Олексій Бабінцев"
date: 2026-08-19
---

# chunk() - поділ даних на частини

Потрібно обробити 10 000 елементів? Або API обмежує 100 запитів за хвилину?

`chunk()` розбиває колекцію на менші групи.

**Сценарії:**

* Обмеження API
* Пакетна обробка
* Керування пам'яттю
* Прогрес-бар

**Відмінність від query chunk():**

Collection chunk() працює з уже завантаженими даними.
Query chunk() завантажує дані з бази порціями.

Порада: поєднувати з sleep() для API rate limit.

```php
// Поділ на частини по 100
$users = User::all();
$users->chunk(100)->each(function ($batch) {
  $this->sendBatchEmail($batch);
});

// API rate limit
$products = collect($apiProducts);
$products->chunk(50)->each(function ($batch) {
  $this->syncToDatabase($batch);
  sleep(1);
});

// Прогрес
$done = 0;

$users->chunk(100)->each(function ($batch) use (&$done) {
  $batch->each(fn($u) => $this->process($u));
  $done += $batch->count();
  echo "Progress: {$done}\n";
});

// Комбінування з іншими методами
$users->chunk(100)->map(function ($chunk) {
  return $chunk->pluck('email');
});
```
