GoLang array_chunk

is this article helpful? yes | no
GoLang replacement for PHP's array_chunk [edit | history]
func ArrayChunk(s []interface{}, size int) [][]interface{} {
	if size < 1 {
		panic("size: cannot be less than 1")
	}
	length := len(s)
	chunks := int(math.Ceil(float64(length) / float64(size)))
	var n [][]interface{}
	for i, end := 0, 0; chunks > 0; chunks-- {
		end = (i + 1) * size
		if end > length {
			end = length
		}
		n = append(n, s[i*size:end])
		i ++
	}
	return n
}

PHP array_chunk

PHP original manual for array_chunk [ show | php.net ]

array_chunk

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

array_chunkSplit an array into chunks

Description

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

Chunks an array into arrays with size elements. The last chunk may contain less than size elements.

Parameters

array

The array to work on

size

The size of each chunk

preserve_keys

When set to TRUE keys will be preserved. Default is FALSE which will reindex the chunk numerically

Return Values

Returns a multidimensional numerically indexed array, starting with zero, with each dimension containing size elements.

Errors/Exceptions

If size is less than 1 E_WARNING will be thrown and NULL returned.

Examples

Example #1 array_chunk() example

<?php
$input_array 
= array('a''b''c''d''e');
print_r(array_chunk($input_array2));
print_r(array_chunk($input_array2true));
?>

The above example will output:

Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [0] => c
            [1] => d
        )

    [2] => Array
        (
            [0] => e
        )

)
Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [2] => c
            [3] => d
        )

    [2] => Array
        (
            [4] => e
        )

)

See Also