<?php
function array_map_via_callback($f, $a) {
$o = [];
$c = function ($v) use (&$o) {
$o[] = $v;
};
foreach ($a as $k => $v) $f($v, $c);
return $o;
}
// Mapping $x => $x ^ 2
function forClassicMap($x) {
return $x * $x;
}
$mapped1 = array_map('forClassicMap', [1, 2, 3]);
// Mapping $x => $x ^ 2 via callback
function forMapViaCallback($x, $callback) {
$callback($x * $x);
}
$mapped2 = array_map_via_callback('forMapViaCallback', [1, 2, 3]);
var_dump($mapped1, $mapped2);
preferences:
27.39 ms | 402 KiB | 5 Q