Bird
Raised Fist0
PHPprogramming~10 mins

Array reduce function in PHP - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Array reduce function
Start with array
↓
Initialize accumulator with initial value
↓
Take first element
↓
Apply callback(accumulator, element)
↓
Update accumulator with callback result
↓
More elements?
Yes→Take next element
The reduce function starts with an initial value and applies a callback to combine each array element into a single result.
Execution Sample
PHP
<?php
$array = [1, 2, 3, 4];
$result = array_reduce($array, fn($acc, $item) => $acc + $item, 0);
echo $result;
?>
This code sums all numbers in the array using array_reduce starting from 0.
Execution Table
StepCurrent ElementAccumulator BeforeCallback ResultAccumulator AfterAction
1100 + 1 = 11Add first element to accumulator
2211 + 2 = 33Add second element to accumulator
3333 + 3 = 66Add third element to accumulator
4466 + 4 = 1010Add fourth element to accumulator
5-10-10No more elements, return accumulator
💡 All elements processed, final accumulator 10 returned
Variable Tracker
VariableStartAfter 1After 2After 3After 4Final
accumulator01361010
current element-1234-
Key Moments - 3 Insights
Why does the accumulator start with the initial value and not the first array element?
The accumulator starts with the initial value (0 here) so the callback always has a defined starting point. See execution_table row 1 where accumulator is 0 before adding the first element.
What happens if the array is empty?
If the array is empty, array_reduce returns the initial value immediately because there are no elements to process, as shown in the exit_note.
Why do we update the accumulator after each callback?
The accumulator holds the combined result so far. Each callback uses it to add the current element, then updates it for the next step, as shown in execution_table rows 1-4.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the accumulator value after processing the second element?
A2
B3
C1
D4
💡 Hint
Check the 'Accumulator After' column at Step 2 in execution_table
At which step does the accumulator become 6?
AStep 1
BStep 4
CStep 3
DStep 5
💡 Hint
Look at the 'Accumulator After' column in execution_table for value 6
If the initial value was 10 instead of 0, what would be the final accumulator?
A20
B10
C24
D30
💡 Hint
Sum array elements 1+2+3+4=10 plus initial 10 equals 20, check calculation carefully
Concept Snapshot
array_reduce(array, callback, initial) applies callback to combine array elements into one value.
Starts with initial accumulator value.
Callback receives accumulator and current element.
Returns final accumulator after processing all elements.
Useful for sums, products, or custom reductions.
Full Transcript
The PHP array_reduce function takes an array, a callback function, and an initial value. It starts with the initial value as the accumulator. Then for each element in the array, it calls the callback with the accumulator and the element. The callback returns a new accumulator value. This repeats until all elements are processed. Finally, array_reduce returns the accumulator. For example, summing [1,2,3,4] with initial 0 results in 10. If the array is empty, it returns the initial value immediately. The accumulator updates after each element to hold the combined result so far.

Practice

(1/5)
1. What does the PHP function array_reduce do?
easy
A. It sorts the array elements in ascending order.
B. It combines all elements of an array into a single value using a callback function.
C. It filters elements of an array based on a condition.
D. It splits an array into smaller arrays.

Solution

  1. Step 1: Understand the purpose of array_reduce

    The function takes an array and a callback to combine elements into one value.
  2. Step 2: Compare with other array functions

    Unlike sorting or filtering, array_reduce accumulates values into one result.
  3. Final Answer:

    It combines all elements of an array into a single value using a callback function. -> Option B
  4. Quick Check:

    array_reduce = combine elements [OK]
Hint: Remember: array_reduce reduces array to one value [OK]
Common Mistakes:
  • Confusing array_reduce with sorting functions
  • Thinking it filters elements instead of combining
  • Assuming it splits arrays into parts
2. Which of the following is the correct syntax to use array_reduce in PHP?
easy
A. array_reduce(mixed $initial = null, array $array, callable $callback)
B. array_reduce(callable $callback, array $array, mixed $initial = null)
C. array_reduce(array $array, mixed $initial = null, callable $callback)
D. array_reduce(array $array, callable $callback, mixed $initial = null)

Solution

  1. Step 1: Recall the official function signature

    The correct order is array, callback, then optional initial value.
  2. Step 2: Check each option's parameter order

    Only array_reduce(array $array, callable $callback, mixed $initial = null) matches the correct order and types.
  3. Final Answer:

    array_reduce(array $array, callable $callback, mixed $initial = null) -> Option D
  4. Quick Check:

    array first, callback second, initial last [OK]
Hint: Remember: array first, callback second, initial last [OK]
Common Mistakes:
  • Swapping callback and array parameters
  • Placing initial value before callback
  • Misordering parameters causing errors
3. What is the output of the following PHP code?
$numbers = [1, 2, 3, 4];
$result = array_reduce($numbers, function($carry, $item) {
    return $carry + $item;
}, 0);
echo $result;
medium
A. 10
B. 24
C. 1234
D. Error

Solution

  1. Step 1: Understand the callback function

    The callback adds the current item to the carry (accumulated sum).
  2. Step 2: Calculate the sum step-by-step

    Starting with 0, add 1, then 2, then 3, then 4: 0+1=1, 1+2=3, 3+3=6, 6+4=10.
  3. Final Answer:

    10 -> Option A
  4. Quick Check:

    Sum of 1+2+3+4 = 10 [OK]
Hint: Sum array with array_reduce and initial 0 [OK]
Common Mistakes:
  • Forgetting initial value causes null carry
  • Concatenating instead of adding numbers
  • Expecting product instead of sum
4. Identify the issue in this PHP code using array_reduce:
$values = [];
$result = array_reduce($values, function($carry, $item) {
    return $carry + $item;
});
echo $result;
medium
A. Callback function has wrong parameter order.
B. array_reduce cannot be used on empty arrays.
C. Missing initial value causes $carry to be null.
D. The echo statement is missing parentheses.

Solution

  1. Step 1: Check initial value usage

    No initial value is given, so $carry starts as null.
  2. Step 2: Understand effect on empty array

    With empty array and no initial, array_reduce returns null without calling the callback.
  3. Final Answer:

    Missing initial value causes $carry to be null. -> Option C
  4. Quick Check:

    Initial value needed for empty arrays [OK]
Hint: Always provide initial value to avoid null carry [OK]
Common Mistakes:
  • Assuming callback parameters are reversed
  • Thinking array_reduce fails on empty arrays without initial
  • Ignoring PHP syntax for echo
5. Given an array of strings ['apple', 'banana', 'cherry'], how can you use array_reduce to create a single string with all fruits separated by commas (e.g., 'apple,banana,cherry')?
hard
A. Use array_reduce with callback concatenating carry and item with a comma, initial value as empty string.
B. Use array_reduce with callback adding carry and item as numbers, initial value 0.
C. Use array_reduce with callback returning only the last item, no initial value.
D. Use array_reduce with callback multiplying carry and item, initial value 1.

Solution

  1. Step 1: Understand the goal

    We want to join strings with commas into one string.
  2. Step 2: Design the callback

    Callback should add a comma between carry and item, starting with empty string.
  3. Step 3: Avoid leading comma

    Use a condition to avoid comma before first item or trim later.
  4. Final Answer:

    Use array_reduce with callback concatenating carry and item with a comma, initial value as empty string. -> Option A
  5. Quick Check:

    Concatenate strings with commas using array_reduce [OK]
Hint: Concatenate strings with commas, start with empty string [OK]
Common Mistakes:
  • Adding strings as numbers causing errors
  • Not providing initial value causing null carry
  • Using multiplication on strings
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard