array_chunk()

Last updated on

When working with big arrays in PHP, things can get messy. That is where php array_chunk() steps in by providing a way to get those big arrays broken down into small, manageable pieces, from organizing data that is to be displayed to splitting content into rows or handling large datasets cleanly and efficiently using array_chunk().

In this article, you will learn what the PHP function array_chunk() does and how to use it, along with practical examples, and why it's a convenient tool in the hands of any PHP developer.

What is php array_chunk()?

In other words, the array_chunk() in PHP is a function that takes one array and breaks it into smaller arrays or, in other words, chunks: take a whole long list of items and divide it into portions that are easier to handle or manage.

Be it displaying products across rows, creating groups, or processing large sets of data, array_chunk() will do what is required.

Syntax of PHP array_chunk()

Accordingly, the syntax is relatively simple; there are only a couple of main options:

array_chunk(array $array, int $size, bool $preserve_keys = false): array
  • $array: This is the source array that you would want to split up.
  • $size: Size that the chunks should contain.
  • $preserve_keys (optional): Whether to preserve the original keys of the array. If TRUE, PHP will keep the keys intact.

The next section explains how array_chunk() works with a simple example.

Basic Example of php array_chunk()

Suppose you have an array of students and you want to divide them into groups of three. Here is how array_chunk() does just that for you in PHP:

$students = ["Alice", "Bob", "Charlie", "Dave", "Eve", "Frank"];
$groups = array_chunk($students, 3);

print_r($groups);

Here is the output:

Array
(
    [0] => Array ( [0] => Alice [1] => Bob [2] => Charlie )
    [1] => Array ( [0] => Dave [1] => Eve [2] => Frank )
)

Above, array_chunk() divided our $students array into two smaller arrays of three each. It's a clean and clear-cut way to handle grouping without any excess loops or conditions.

Now, in the next section, we will see how the preserve_keys parameter works and when you might need it.

Using preserve_keys with the array_chunk()

By default, array_chunk() will reset the keys to begin at 0 for each chunk. But what if you needed to retain the original keys, say you are dealing with associative arrays? Well, that's where preserve_keys comes in. Here it is in action:

$student_scores = ["Alice" => 95, "Bob" => 87, "Charlie" => 92, "Dave" => 88];
$groups = array_chunk($student_scores, 2, true);

print_r($groups);

Here is the output:

Array
(
    [0] => Array ( [Alice] => 95 [Bob] => 87 )
    [1] => Array ( [Charlie] => 92 [Dave] => 88 )
)

This will work, but setting preserve_keys to true, the original names are kept as keys for readability and ease of use. If preserve_keys was not set, this function would reset the keys in each chunk.

Wrapping Up

This array_chunk() function in PHP is powerful yet simple in terms of splitting an array into parts. Ideally, it's great for creating manageable chunks in items being displayed in rows, handling large datasets, and batch grouping of data.

Once you get accustomed to the syntax, optional parameters, and use, you'll commit it smoothly to your PHP projects. Just keep in mind how chunk size and key preservation affect the handling of your data, and you will squeeze the most from array_chunk().

Frequently Asked Questions (FAQs)

  • What is `array_chunk()`?

    The array_chunk() is a function that splits a large array into smaller arrays, known as chunks. It takes an array, divides it into segments of a specified size, and returns these smaller arrays as elements within the main array. This is helpful when you want to organize or display data in a structured way, like rows or groups.
  • How does `array_chunk()` work?

    The function takes three parameters: 1. The main array to be split. 2. The chunk size, or the number of elements each sub-array should contain. 3. An optional preserve_keys parameter to maintain the original array keys. By default, preserve_keys is set to false. Example of array_chunk():
    $students = ["Alice", "Bob", "Charlie", "Dave", "Eve", "Frank"];
    $groups = array_chunk($students, 3);
    
    print_r($groups);
    
    Output:
    Array
    (
        [0] => Array ( [0] => Alice [1] => Bob [2] => Charlie )
        [1] => Array ( [0] => Dave [1] => Eve [2] => Frank )
    )
  • How do you preserve keys in `array_chunk()`?

    By setting the preserve_keys parameter to true, you can keep the original array keys intact, which is useful when working with associative arrays. Example:
    $student_scores = ["Alice" => 95, "Bob" => 87, "Charlie" => 92, "Dave" => 88];
    $groups = array_chunk($student_scores, 2, true);
    
    print_r($groups);
    
    Output:
    Array
    (
        [0] => Array ( [Alice] => 95 [Bob] => 87 )
        [1] => Array ( [Charlie] => 92 [Dave] => 88 )
    )
  • What is the syntax for `array_chunk()`?

    The syntax is as follows:
    array_chunk(array $array, int $size, bool $preserve_keys = false): array
  • What happens if the array length isn’t a perfect multiple of the chunk size?

    If the array length isn’t divided evenly by the chunk size, the last chunk will contain fewer elements. This is expected behavior, and no error occurs.
  • Can `array_chunk()` handle empty arrays?

    Yes, array_chunk() will handle an empty array without errors. If an empty array is passed, it will simply return an empty array as the output.
  • Is `array_chunk()` available in all PHP versions?

    The array_chunk() is available in PHP 4 and later versions, so it is compatible with most PHP environments.
  • When should I use `array_chunk()` over other array functions?

    Use array_chunk() when you need to break an array into parts of a specified size. It’s particularly useful for organizing data into rows or groups, unlike array_slice() which is more suited for taking specific segments from an array based on offset and length.
Share on:

Did you find this tutorial useful?

Your feedback helps us improve our tutorials.