Current Location: Home> Latest Articles> Differences between array_chunk and array_slice and usage scenarios

Differences between array_chunk and array_slice and usage scenarios

M66 2025-04-26

array_chunk function

The array_chunk function is used to split a large array into multiple small arrays. The size of each small array is the specified size. The basic syntax of this function is as follows:

 array_chunk(array $array, int $size, bool $preserve_keys = false): array
  • Parameter description:

    • $array : The original array that needs to be split.

    • $size : The size of each small array.

    • $preserve_keys : Whether to retain the key name of the original array, the default value is false , that is, the index will be reset.

  • Function:
    array_chunk cuts the original array to the specified size. If $size is set to 2, the original array will be split into several small arrays containing two elements. If the last array has less than $size , it will contain the remaining elements.

  • Example:

 <?php
$array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$chunkedArray = array_chunk($array, 3);
print_r($chunkedArray);
?>

Output:

 Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )
    [1] => Array
        (
            [0] => 4
            [1] => 5
            [2] => 6
        )
    [2] => Array
        (
            [0] => 7
            [1] => 8
            [2] => 9
        )
)
  • Applicable scenarios:
    array_chunk is suitable for scenes where a large array is divided into several small arrays, such as pagination display, batch processing tasks, etc.

array_slice function

The array_slice function is used to extract a part from an array. Unlike array_chunk , array_slice allows you to start anywhere in the original array and specify the number of elements to be taken out. The basic syntax is as follows:

 array_slice(array $array, int $offset, int $length = NULL, bool $preserve_keys = false): array
  • Parameter description:

    • $array : original array.

    • $offset : The index position to start cutting. If it is a negative number, the count starts from the end of the array.

    • $length : The number of elements to be cut. If not specified, the default is from $offset to the end of the array.

    • $preserve_keys : Whether to preserve the key name of the original array.

  • Function:
    array_slice starts at the specified position of the array, intercepts a certain number of elements and returns a new array. It is worth noting that array_slice does not change the original array, it returns a new array.

  • Example:

 <?php
$array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$slicedArray = array_slice($array, 3, 4);
print_r($slicedArray);
?>

Output:

 Array
(
    [0] => 4
    [1] => 5
    [2] => 6
    [3] => 7
)
  • Applicable scenarios:
    array_slice is suitable for scenarios where specific parts need to be extracted from the original array, such as intercepting records of a certain time period, pagination query, etc.

The difference between array_chunk and array_slice

  • Cutting method:

    • array_chunk is to split an array by a fixed size and return a two-dimensional array containing multiple arrays.

    • array_slice just intercepts the specified segment from the array and returns a new array, without changing the original array.

  • Return result:

    • array_chunk returns an array (two-dimensional array) containing small arrays.

    • array_slice returns a single array (subarray).

  • Applicable scenarios:

    • array_chunk is more suitable for dividing a large array into multiple parts by size, especially when paging or batch processing is required.

    • array_slice is more suitable for extracting part from an array, especially when you need to extract a specific index range.

Summarize

  • If you need to split a large array into multiple subarrays of equal size, select array_chunk .

  • If you only need to extract part of the data from an array, you can use array_slice .

These two functions have their own usage scenarios in PHP. Understanding their differences can help you handle array operations more efficiently.