Functional Helpers
Map Values
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
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";
$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);function double_value($value)
pass 1 of 31<?php2function double_value($value2) {3 return $value2 * 2;4}All 3 passes — pass 1 is the card above pass $value1 2 2 4 3 6 $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
$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);function double_value($value)
pass 1 of 31<?php2function double_value($value1) {3 return $value1 * 2;4}All 3 passes — pass 1 is the card above pass $value1 1 2 4 3 6 $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
$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);function double_value($value)
pass 1 of 31<?php2function double_value($value5) {3 return $value5 * 2;4}All 3 passes — pass 1 is the card above pass $value1 5 2 4 3 6 $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