(PHP 4 >= 4.0.6, PHP 5, PHP 7)
array_map — Aplica la retrollamada a los elementos de los arrays dados
   array_map() devuelve un array que contiene todos los
   elementos de array1 después de haber aplicado la
   función callback a cada uno de ellos.
   El número de parámetros que la función
   callback
   acepta debería coincidir con el número de arrays
   proporcionados a array_map().
  
callbackFunción de retrollamada a ejecutar para cada elemento de cada array.
array1
       Un array a recorrer con la función callback.
      
...
       Lista variable de argumentos de tipo array a recorrer con la
       función callback.
      
   Devuelve un array que contiene todos los elementos de array1
   después de aplicar la función callback a cada uno de ellos.
  
Ejemplo #1 Ejemplo de array_map()
<?php
function cube($n)
{
    return($n * $n * $n);
}
$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($b);
?>
Este ejemplo hace que $b contenga:
Array
(
    [0] => 1
    [1] => 8
    [2] => 27
    [3] => 64
    [4] => 125
)
Ejemplo #2 array_map() usando una función lambda (desde PHP 5.3.0)
<?php
$func = function($valor) {
    return $valor * 2;
};
print_r(array_map($func, range(1, 5)));
?>
Array
(
    [0] => 2
    [1] => 4
    [2] => 6
    [3] => 8
    [4] => 10
)
Ejemplo #3 array_map() - usando más arrays
<?php
function mostrar_en_español($n, $m)
{
    return("El número $n se llama $m en español");
}
function correspondencia_en_español($n, $m)
{
    return(array($n => $m));
}
$a = array(1, 2, 3, 4, 5);
$b = array("uno", "dos", "tres", "cuatro", "cinco");
$c = array_map("mostrar_en_español", $a, $b);
print_r($c);
$d = array_map("correspondencia_en_español", $a , $b);
print_r($d);
?>
El resultado del ejemplo sería:
// salida de $c
Array
(
    [0] => El número 1 se llama uno en español
    [1] => El número 2 se llama dos en español
    [2] => El número 3 se llama tres en español
    [3] => El número 4 se llama cuatro en español
    [4] => El número 5 se llama cinco en español
)
// salida of $d
Array
(
    [0] => Array
        (
            [1] => uno
        )
    [1] => Array
        (
            [2] => dos
        )
    [2] => Array
        (
            [3] => tres
        )
    [3] => Array
        (
            [4] => cuatro
        )
    [4] => Array
        (
            [5] => cinco
        )
)
Usualmente, cuando se usan dos o más arrays, estos deberían ser de la misma longitud, ya que la retrollamada se aplica en paralelo a los elementos correspondientes. Si los arrays son de longitudes diferentes, los más cortos se extenderán con elementos vacíos para que coincidan con la logintud del más largo.
   Un uso interesante de esta función es la construcción de un array de
   arrays, lo que se puede llevar a cabo usando NULL como el nombre de la
   retrollamada.
  
Ejemplo #4 Crear un array de arrays
<?php
$a = array(1, 2, 3, 4, 5);
$b = array("one", "two", "three", "four", "five");
$c = array("uno", "dos", "tres", "cuatro", "cinco");
$d = array_map(null, $a, $b, $c);
print_r($d);
?>
El resultado del ejemplo sería:
Array
(
    [0] => Array
        (
            [0] => 1
            [1] => one
            [2] => uno
        )
    [1] => Array
        (
            [0] => 2
            [1] => two
            [2] => dos
        )
    [2] => Array
        (
            [0] => 3
            [1] => three
            [2] => tres
        )
    [3] => Array
        (
            [0] => 4
            [1] => four
            [2] => cuatro
        )
    [4] => Array
        (
            [0] => 5
            [1] => five
            [2] => cinco
        )
)
El array devuelto conservará las claves del argumento array si y solo si se pasa exactamente un array. Si se pasa más de un array, el array devuelto tendrá claves secuenciales de tipo integer.
Ejemplo #5 array_map() - con claves de tipo string
<?php
$arr = array("stringkey" => "value");
function cb1($a) {
    return array ($a);
}
function cb2($a, $b) {
    return array ($a, $b);
}
var_dump(array_map("cb1", $arr));
var_dump(array_map("cb2", $arr, $arr));
var_dump(array_map(null,  $arr));
var_dump(array_map(null, $arr, $arr));
?>
El resultado del ejemplo sería:
array(1) {
  ["stringkey"]=>
  array(1) {
    [0]=>
    string(5) "value"
  }
}
array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(5) "value"
    [1]=>
    string(5) "value"
  }
}
array(1) {
  ["stringkey"]=>
  string(5) "value"
}
array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(5) "value"
    [1]=>
    string(5) "value"
  }
}