Bird
Raised Fist0
PHPprogramming~10 mins

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

Choose your learning style10 modes available
Concept Flow - Array map function
Start with array
↓
Pick first element
↓
Apply callback function
↓
Store result in new array
↓
More elements?
Yes→Pick next element
No↓
Return new array
The map function takes each element of an array, applies a function to it, and collects the results into a new array.
Execution Sample
PHP
<?php
$numbers = [1, 2, 3];
$squares = array_map(fn($n) => $n * $n, $numbers);
print_r($squares);
?>
This code squares each number in the array and prints the new array.
Execution Table
StepCurrent ElementCallback AppliedResult StoredNew Array State
111 * 1 = 11[1]
222 * 2 = 44[1, 4]
333 * 3 = 99[1, 4, 9]
4No more elements--[1, 4, 9]
💡 All elements processed, map returns new array [1, 4, 9]
Variable Tracker
VariableStartAfter 1After 2After 3Final
numbers[1, 2, 3][1, 2, 3][1, 2, 3][1, 2, 3][1, 2, 3]
current elementN/A123N/A
resultN/A149N/A
squares[][1][1, 4][1, 4, 9][1, 4, 9]
Key Moments - 2 Insights
Why does the original array 'numbers' not change after using array_map?
array_map creates a new array with the results and does not modify the original array, as shown in the variable_tracker where 'numbers' stays the same.
What happens if the callback function returns a different type than the input?
The new array will contain the returned values exactly as produced by the callback, regardless of type, because array_map stores the callback results directly.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the 'Result Stored' at step 2?
A2
B4
C1
D9
💡 Hint
Check the 'Result Stored' column in row 2 of the execution_table.
At which step does the map function finish processing all elements?
AStep 4
BStep 3
CStep 2
DStep 1
💡 Hint
Look for the step where 'No more elements' appears in the 'Current Element' column.
If the callback function was changed to return $n + 1, what would be the 'New Array State' after step 3?
A[1, 2, 3]
B[1, 4, 9]
C[2, 3, 4]
D[0, 1, 2]
💡 Hint
Consider how adding 1 to each element changes the array values in the variable_tracker.
Concept Snapshot
array_map(callback, array) applies callback to each element
Returns a new array with results
Original array stays unchanged
Callback can be any function or closure
Useful for transforming arrays easily
Full Transcript
The PHP array_map function takes an array and a callback function. It applies the callback to each element in the array one by one. Each result is stored in a new array. The original array remains unchanged. After all elements are processed, the new array is returned. For example, squaring each number in [1, 2, 3] produces [1, 4, 9]. This process is stepwise: pick element, apply function, store result, repeat until done.

Practice

(1/5)
1. What does the PHP function array_map do?
easy
A. Deletes elements from an array based on a condition
B. Merges two or more arrays into one
C. Sorts the elements of an array in ascending order
D. Applies a function to each element of an array and returns a new array

Solution

  1. Step 1: Understand the purpose of array_map

    The function applies a given callback function to each element of the input array.
  2. Step 2: Identify the output of array_map

    It returns a new array with the results of the callback function applied to each element.
  3. Final Answer:

    Applies a function to each element of an array and returns a new array -> Option D
  4. Quick Check:

    array_map = apply function to array elements [OK]
Hint: Remember: array_map transforms each item, returns new array [OK]
Common Mistakes:
  • Thinking array_map modifies the original array
  • Confusing array_map with array_filter
  • Assuming array_map merges arrays
2. Which of the following is the correct syntax to use array_map in PHP?
easy
A. array_map(function, array);
B. array_map(array, function);
C. array_map->function(array);
D. array_map(function => array);

Solution

  1. Step 1: Recall the function signature

    The correct syntax is array_map(callback_function, array_to_process).
  2. Step 2: Match the options with the syntax

    array_map(function, array); matches the correct order: function first, then array.
  3. Final Answer:

    array_map(function, array); -> Option A
  4. Quick Check:

    array_map(callback, array) syntax [OK]
Hint: Function comes first, array second in array_map [OK]
Common Mistakes:
  • Swapping the order of function and array
  • Using arrow or assignment syntax incorrectly
  • Using object method syntax instead of function call
3. What is the output of the following PHP code?
$numbers = [1, 2, 3];
$result = array_map(fn($n) => $n * 2, $numbers);
print_r($result);
medium
A. [2, 4, 6]
B. [1, 2, 3]
C. [3, 4, 5]
D. Error: Invalid callback

Solution

  1. Step 1: Understand the callback function

    The callback doubles each number: $n * 2.
  2. Step 2: Apply the callback to each element

    1*2=2, 2*2=4, 3*2=6, so the new array is [2, 4, 6].
  3. Final Answer:

    [2, 4, 6] -> Option A
  4. Quick Check:

    Each element doubled = [2, 4, 6] [OK]
Hint: Multiply each element by 2 in the callback [OK]
Common Mistakes:
  • Expecting original array unchanged
  • Confusing the callback operation
  • Thinking print_r outputs a string, not array
4. Identify the error in this PHP code using array_map:
$arr = [1, 2, 3];
$result = array_map('double', $arr);
function double($x) {
  return $x * 2;
}
print_r($result);
medium
A. array_map requires an anonymous function, not a named function
B. No error, code runs correctly
C. Function double is called before it is defined
D. Missing semicolon after array_map call

Solution

  1. Step 1: Check function definition and usage

    The function double is defined after the array_map call, but PHP allows this because functions are hoisted.
  2. Step 2: Verify syntax and function type

    array_map accepts named functions as callbacks, and semicolons are correctly placed.
  3. Final Answer:

    No error, code runs correctly -> Option B
  4. Quick Check:

    Named function callback works fine [OK]
Hint: PHP functions can be used before definition [OK]
Common Mistakes:
  • Assuming function must be defined before use
  • Thinking only anonymous functions work in array_map
  • Missing semicolon errors where none exist
5. Given an array of strings ['apple', 'banana', 'cherry'], how can you use array_map to create a new array with the length of each string?
hard
A. array_map(fn($s) => size($s), ['apple', 'banana', 'cherry']);
B. array_map(fn($s) => count($s), ['apple', 'banana', 'cherry']);
C. array_map(fn($s) => strlen($s), ['apple', 'banana', 'cherry']);
D. array_map(fn($s) => $s.length, ['apple', 'banana', 'cherry']);

Solution

  1. Step 1: Identify the correct function to get string length

    In PHP, strlen() returns the length of a string.
  2. Step 2: Apply strlen in array_map callback

    Using fn($s) => strlen($s) applies length calculation to each string.
  3. Final Answer:

    array_map(fn($s) => strlen($s), ['apple', 'banana', 'cherry']); -> Option C
  4. Quick Check:

    Use strlen() for string length in array_map [OK]
Hint: Use strlen() inside array_map callback for string lengths [OK]
Common Mistakes:
  • Using count() which counts array elements, not string length
  • Trying to access string length with dot notation
  • Using non-existent size() function
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