If you have a single-dimensional array, and want to break it into chunks, you can use the `array_chunks` method.

It takes 3 arguments:

1. The input array / original array
2. The length of the new array (how many dimensions to create)
3. A boolean to preserve the original keys or not

`<strong>array_chunk</strong>(array&nbsp;\$array,&nbsp;int&nbsp;\$length,&nbsp;bool&nbsp;\$preserve_keys=<strong>false</strong>&nbsp;):array`

## An example of dividing an array into chunks#

Let’s take an initial starter array with 5 values

``````\$input_array = array('a', 'b', 'c', 'd', 'e');
``````

If we said we would like to create 2 chunks:

``````\$new_array = array_chunk(\$input_array, 2);
print_r(\$new_array);

/*
Array
(
[0] => Array
(
[0] => a
[1] => b
)
[1] => Array
(
[0] => c
[1] => d
)
[2] => Array
(
[0] => e
)
)
*/
``````

So now let’s try it with preserving the keys:

``````\$new_array =  array_chunk(\$input_array, 2, true);
print_r(\$new_array);

/*
Array
(
[0] => Array
(
[0] => a
[1] => b
)
[1] => Array
(
[2] => c
[3] => d
)
[2] => Array
(
[4] => e
)

)
*/
``````

## But where would I use this?#

This is particularly helpful when constructing tables into HTML renders, or when needing to populate rows and columns when using Bootstrap css `col-x-x` blocks:

``````\$values = range(1, 31);
\$rows = array_chunk(\$values, 7);

print "<table>\n";
foreach (\$rows as \$row) {
print "<tr>\n";
foreach (\$row as \$value) {
print "<td>" . \$value . "</td>\n";
}
print "</tr>\n";
}
print "</table>\n";
``````