In this tutorial, you shall learn about PHP array_chunk() function which can split a given array into arrays of chunks with specific number of elements in each split, with syntax and examples.

PHP array_chunk() Function

PHP array_chunk() function splits the given array into arrays of chunks with specific number of elements.

You can mention the specific number of elements that has to go in each chunk.

Syntax of array_chunk()

The syntax of PHP array_chunk() function is

array_chunk ( array $array , int $size [, bool $preserve_keys = FALSE ] ) : array

where

ParameterDescription
arrayThe array which will be split into chunks.
sizeThe number of elements in each chunk.
preserve_keysIf TRUE, keys of the source array will be preserved.If FALSE, keys of the chunks will reindex.

Return Value

The array_chunk() function returns an array of arrays, i.e., multi-dimensional array. Outer dimension is for the chunks, and the inner dimension is for the elements of the array.

ADVERTISEMENT

Examples

1. Split given array into chunks of size 3

In this example, we will take an associative array with key-value pairs, and then split into chunks of size 3.

PHP Program

<?php
$array = ["a"=>2, "b"=>5, "c"=>7, "e"=>9, "f"=>1, "g"=>0, "h"=>8, "i"=>3];
$chunks = array_chunk($array, 3);
echo "The chunks are";
foreach ($chunks as $chunk) {
    echo "<br>";
    print_r($chunk);
}
?>

Output

PHP array_chunk() - Split Array into Chunks

There are two observations that we can draw from this output. They are

  • The keys in the chunk arrays are 0, 1, 2: which is not as our source array. This is because, by default array_chunk() does not preserve the keys.
  • The last chunk has only two elements which is less than the given chunk size. This happens for the last chunk if the array does not have exact multiple of given chunk size.

2. Split array into chunks, but preserve the keys

In this example, we will take an associative array with key-value pairs, same as in the previous example, and then split into chunks of size 3, but preserve the keys by passing TRUE for preserve_keys argument.

PHP Program

<?php
$array = ["a"=>2, "b"=>5, "c"=>7, "e"=>9, "f"=>1, "g"=>0, "h"=>8, "i"=>3];
$chunks = array_chunk($array, 3, TRUE);
echo "The chunks are";
foreach ($chunks as $chunk) {
    echo "<br>";
    print_r($chunk);
}
?>

Output

PHP array_chunk() - Split Array into Chunks - Preserve Keys

The keys in the chunks are preserved from the source array.

3. Warning: array_chunk(): Size parameter expected to be greater than 0

The chunk size has to be greater than zero. If it is less than one, array_chunk() throws a warning and returns NULL.

In the following example, we will call array_chunk() function with size = 0.

PHP Program

<?php
$array = ["a"=>2, "b"=>5, "c"=>7, "e"=>9, "f"=>1, "g"=>0, "h"=>8, "i"=>3];
$chunks = array_chunk($array, 0);
?>

Output

PHP array_chunk() - Warning: array_chunk(): Size parameter expected to be greater than 0

Conclusion

In this PHP Tutorial, we learned how to change the case of all keys in given array using PHP Array array_change_key_case() function.