array_map builds a new array by applying a callback to each value.

transform each value Use a named callback when each element should go through the same transformation.

Map Values

first
map_values.php
Replay: real traced execution (multi-file project)
<?php
function double_value($value) {
    return $value * 2;
}

$first = 2;
$values = [$first, 4, 6];
$mapped = array_map("double_value", $values);
$summary = implode(",", $mapped);

echo "first=" . $first . "\n";
echo "mapped=" . $summary . "\n";
<?php
function double_value($value) {
    return $value * 2;
}

$first = 1;
$values = [$first, 4, 6];
$mapped = array_map("double_value", $values);
$summary = implode(",", $mapped);

echo "first=" . $first . "\n";
echo "mapped=" . $summary . "\n";
<?php
function double_value($value) {
    return $value * 2;
}

$first = 5;
$values = [$first, 4, 6];
$mapped = array_map("double_value", $values);
$summary = implode(",", $mapped);

echo "first=" . $first . "\n";
echo "mapped=" . $summary . "\n";
  1. $first ← 2, $values ← Array

    6$first→ 2 = 2; //@first=1, 57$values→ Array = [$first2, 4, 6];8$mapped = array_map("double_value", $valuesArray);9$summary = implode(",", $mapped);
  2. function double_value($value)

    pass 1 of 3
    1<?php2function double_value($value2) {3    return $value2 * 2;4}
    All 3 passes — pass 1 is the card above
    pass$value
    12
    24
    36
  3. $mapped ← Array, $summary ← 4,8,12

    7$values = [$first, 4, 6];8$mapped→ Array = array_map("double_value", $valuesArray);9$summary→ 4,8,12 = implode(",", $mappedArray);1011echo "first=" . $first2 . "\n";12echo "mapped=" . $summary4,8,12 . "\n";
    outputfirst=2
    mapped=4,8,12
  1. $first ← 1, $values ← Array

    6$first→ 1 = 1;7$values→ Array = [$first1, 4, 6];8$mapped = array_map("double_value", $valuesArray);9$summary = implode(",", $mapped);
  2. function double_value($value)

    pass 1 of 3
    1<?php2function double_value($value1) {3    return $value1 * 2;4}
    All 3 passes — pass 1 is the card above
    pass$value
    11
    24
    36
  3. $mapped ← Array, $summary ← 2,8,12

    7$values = [$first, 4, 6];8$mapped→ Array = array_map("double_value", $valuesArray);9$summary→ 2,8,12 = implode(",", $mappedArray);1011echo "first=" . $first1 . "\n";12echo "mapped=" . $summary2,8,12 . "\n";
    outputfirst=1
    mapped=2,8,12
  1. $first ← 5, $values ← Array

    6$first→ 5 = 5;7$values→ Array = [$first5, 4, 6];8$mapped = array_map("double_value", $valuesArray);9$summary = implode(",", $mapped);
  2. function double_value($value)

    pass 1 of 3
    1<?php2function double_value($value5) {3    return $value5 * 2;4}
    All 3 passes — pass 1 is the card above
    pass$value
    15
    24
    36
  3. $mapped ← Array, $summary ← 10,8,12

    7$values = [$first, 4, 6];8$mapped→ Array = array_map("double_value", $valuesArray);9$summary→ 10,8,12 = implode(",", $mappedArray);1011echo "first=" . $first5 . "\n";12echo "mapped=" . $summary10,8,12 . "\n";
    outputfirst=5
    mapped=10,8,12