Bird
Raised Fist0
PHPprogramming~5 mins

Array map function in PHP

Choose your learning style10 modes available
Introduction

The array map function helps you change every item in a list quickly. It makes a new list with the changed items.

You want to add 1 to every number in a list of scores.
You need to make all words in a list uppercase.
You want to get the length of each string in a list of names.
You want to convert a list of prices from dollars to euros.
You want to add a prefix to every item in a list of file names.
Syntax
PHP
<?php
function callback_function($item) {
    // change $item and return it
    return $item;
}

$new_array = array_map('callback_function', $original_array);
?>

The callback function is called for each item in the original array.

array_map returns a new array with the changed items, original stays the same.

Examples
Add 1 to each number in the list.
PHP
<?php
$numbers = [1, 2, 3];
$new_numbers = array_map(fn($num) => $num + 1, $numbers);
print_r($new_numbers);
Make all words uppercase using a built-in function.
PHP
<?php
$words = ['apple', 'banana', 'cherry'];
$upper_words = array_map('strtoupper', $words);
print_r($upper_words);
What if the array is empty? Result is also empty.
PHP
<?php
$empty = [];
$result = array_map(fn($x) => $x * 2, $empty);
print_r($result);
Works with one item too.
PHP
<?php
$single = [10];
$doubled = array_map(fn($x) => $x * 2, $single);
print_r($doubled);
Sample Program

This program shows how to use array_map to convert a list of prices from dollars to euros. It prints the original list and the converted list.

PHP
<?php
// Original array of prices in dollars
$prices_in_dollars = [10, 20, 30, 40];

// Function to convert dollars to euros (assume 1 dollar = 0.9 euros)
function convert_to_euros($price_in_dollars) {
    return $price_in_dollars * 0.9;
}

// Print original prices
echo "Original prices in dollars:\n";
print_r($prices_in_dollars);

// Use array_map to convert all prices
$prices_in_euros = array_map('convert_to_euros', $prices_in_dollars);

// Print converted prices
echo "Prices converted to euros:\n";
print_r($prices_in_euros);
?>
OutputSuccess
Important Notes

Time complexity is O(n) because it changes each item once.

Space complexity is O(n) because it makes a new array of the same size.

Common mistake: forgetting to return the changed item in the callback function.

Use array_map when you want to change every item in a list and keep the same order and size.

Summary

array_map applies a function to every item in an array and returns a new array.

The original array stays the same.

Works with empty arrays and arrays with one item too.

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