We use array chunk and pad to split a big list into smaller parts and make sure each part has the same size by adding extra values if needed.
Array chunk and pad in PHP
<?php // Array chunk $chunks = array_chunk(array $array, int $size, bool $preserve_keys = false); // Array pad $padded_array = array_pad(array $array, int $size, mixed $value); ?>
array_chunk splits an array into smaller arrays of a given size.
array_pad adds extra values to an array until it reaches the desired size.
<?php $numbers = [1, 2, 3, 4, 5]; $chunks = array_chunk($numbers, 2); print_r($chunks); ?>
<?php $empty = []; $chunks = array_chunk($empty, 3); print_r($chunks); ?>
<?php $single = [10]; $chunks = array_chunk($single, 2); print_r($chunks); ?>
<?php $values = [1, 2]; $padded = array_pad($values, 5, 0); print_r($padded); ?>
This program shows how to split an array into chunks of 2 items and then pad the last chunk to have exactly 3 items by adding the word 'empty'.
<?php // Original array $fruits = ['apple', 'banana', 'cherry', 'date', 'elderberry']; // Show original array echo "Original array:\n"; print_r($fruits); // Split into chunks of 2 $fruit_chunks = array_chunk($fruits, 2); echo "\nArray chunks (size 2):\n"; print_r($fruit_chunks); // Pad the last chunk to size 3 with 'empty' $last_chunk_index = count($fruit_chunks) - 1; $fruit_chunks[$last_chunk_index] = array_pad($fruit_chunks[$last_chunk_index], 3, 'empty'); echo "\nLast chunk after padding to size 3:\n"; print_r($fruit_chunks[$last_chunk_index]); ?>
Time complexity: array_chunk runs in O(n) where n is the number of elements; array_pad also runs in O(m) where m is the padding size.
Space complexity: Both create new arrays, so space grows with the size of the input and output.
A common mistake is forgetting that array_chunk returns a new array of arrays, not modifying the original.
Use array_chunk when you want to split data into parts; use array_pad when you want to fill missing spots to keep size consistent.
array_chunk splits an array into smaller arrays of a fixed size.
array_pad adds extra values to an array to reach a desired size.
These functions help organize and prepare data for display or processing in equal-sized groups.
Practice
array_chunk do?Solution
Step 1: Understand the function purpose
array_chunkis designed to split a large array into smaller arrays each having a fixed number of elements.Step 2: Compare with other options
Adding elements to reach a size is done byarray_pad, notarray_chunk. Removing duplicates or sorting are unrelated functions.Final Answer:
Splits an array into smaller arrays of a fixed size -> Option AQuick Check:
array_chunk = split array [OK]
- Confusing array_chunk with array_pad
- Thinking it sorts or removes duplicates
- Assuming it modifies the original array in place
$arr to size 5 with the value 0 using array_pad?Solution
Step 1: Recall array_pad syntax
The correct syntax isarray_pad(array, size, value), where the first argument is the array, second is the desired size, third is the padding value.Step 2: Check each option
$padded = array_pad($arr, 5, 0); matches the correct order and arguments. Options B and C have wrong argument order. $padded = array_pad($arr, 5); misses the padding value.Final Answer:
$padded = array_pad($arr, 5, 0); -> Option CQuick Check:
array_pad(array, size, value) correct order [OK]
- Swapping argument order
- Omitting the padding value
- Passing size as first argument
$arr = [1, 2, 3, 4, 5]; $chunks = array_chunk($arr, 2); print_r($chunks);
Solution
Step 1: Understand array_chunk behavior
array_chunk splits the array into smaller arrays each with 2 elements, except the last chunk which may have fewer if elements run out.Step 2: Apply to given array
Splitting [1,2,3,4,5] by 2 gives chunks: [1,2], [3,4], and [5]. No padding is added by array_chunk.Final Answer:
[[1, 2], [3, 4], [5]] -> Option BQuick Check:
array_chunk splits into groups of 2 [OK]
- Expecting padding in array_chunk
- Confusing chunk size with number of chunks
- Assuming all chunks have equal length always
$arr = [1, 2]; $padded = array_pad($arr, 5); print_r($padded);
Solution
Step 1: Check array_pad function signature
array_pad requires three arguments: the array, the new size, and the value to pad with.Step 2: Identify missing argument
The code calls array_pad with only two arguments, missing the padding value, which causes an error.Final Answer:
Missing the padding value argument in array_pad -> Option DQuick Check:
array_pad needs 3 arguments [OK]
- Forgetting the padding value
- Assuming array_pad works with two arguments
- Thinking print_r can't print arrays
$data = [10, 20, 30]. You want to split it into chunks of size 2 and ensure each chunk has exactly 2 elements by padding with 0 if needed. Which code correctly achieves this?Solution
Step 1: Understand the goal
We want chunks of size 2, each chunk exactly length 2, padding with 0 if chunk is smaller.Step 2: Analyze each option
$chunks = array_chunk($data, 2); foreach ($chunks as &$chunk) { $chunk = array_pad($chunk, 2, 0); } print_r($chunks); splits into chunks, then pads each chunk to size 2 with 0, which is correct.
$chunks = array_pad(array_chunk($data, 2), 2, 0); print_r($chunks); tries to pad the array of chunks, which is incorrect.
$chunks = array_chunk(array_pad($data, 5, 0), 2); print_r($chunks); pads the original array to size 5, then chunks, which may add unwanted extra elements.
$chunks = array_chunk($data, 2, 0); print_r($chunks); passes 0 as third argument to array_chunk, which is invalid.Final Answer:
$chunks = array_chunk($data, 2); foreach ($chunks as &$chunk) { $chunk = array_pad($chunk, 2, 0); } print_r($chunks); -> Option AQuick Check:
Pad each chunk after chunking [OK]
- Padding the whole array before chunking
- Passing extra arguments to array_chunk
- Trying to pad the array of chunks directly
Ready to prove it?
Pass the test and this pattern moves unknown
