array_map

(PHP 4 >= 4.0.6)

array_map --  Aplica uma função em todos os elementos dos arrays dados

Descrição

array array_map ( mixed callback, array arr1 [, array arr2...])

array_map() retorna um array contendo todos os elementos de arr1 depois de aplicada a função callback em cada um. O número de parâmetros que a função callback aceita deve coincidir com o número de arrays passados para a array_map()

Exemplo 1. Exemplo de array_map()

function cubo($n) {
    return $n*$n*$n;
}

$a = array(1, 2, 3, 4, 5);
$b = array_map("cubo", $a);

Isso resultará em $b contendo array (1, 8, 27, 64, 125);

Exemplo 2. array_map() - usando mais arrays

function mostrar_Espanhol($n, $m) {
    return "O número $n é chamado de $m na Espanha";
}

function map_Espanhol($n, $m) {
    return array ($n => $m);
}

$a = array(1, 2, 3, 4, 5);
$b = array("uno", "dos", "tres", "cuatro", "cinco");

$c = array_map("mostrar_Espanhol", $a, $b);

print_r($c);

// mostrará:
// Array 
// (
//     [0] => O número 1 é chamado de uno na Espanha
//     [1] => O número 2 é chamado de dos na Espanha
//     [2] => O número 3 é chamado de tres na Espanha
//     [3] => O número 4 é chamado de cuatro na Espanha
//     [4] => O número 5 é chamado de cinco na Espanha
// )

$d = array_map("map_Espanhol", $a , $b);

print_r($d);

// will output:
// Array 
// (
//     [0] => Array
//         (
//             [1] => uno
//         )
// 
//     [1] => Array
//         (
//             [2] => dos
//         )
// 
//     [2] => Array
//         (
//             [3] => tres
//         )
// 
//     [3] => Array
//         (
//             [4] => cuatro
//         )
// 
//     [4] => Array
//         (
//             [5] => cinco
//         )
// 
// )

Normalmente quando se usa dois ou mais arrays, eles devem ter o mesmo tamanho porque a função callback é aplicada paralelamente aos elementos correpondentes. Se os arrays tem tamanhos diferentes, o menos array será extendido com elementos em branco.

Um modo interessante de usar essa função é na construção de um array de arrays, o que pode ser facilmente feito usando NULL como o nome da função callback.

Exemplo 3. Criando um array de arrays

$a = array(1, 2, 3, 4, 5);
$b = array("um", "dois", "tres", "quatro", "cinco");
$c = array("uno", "dos", "tres", "cuatro", "cinco");

$d = array_map(null, $a, $b, $c);
print_r($d);

// mostrará:
// Array
// (
//     [0] => Array
//         (
//             [0] => 1
//             [1] => um
//             [2] => uno
//         )
// 
//     [1] => Array
//         (
//             [0] => 2
//             [1] => dois
//             [2] => dos
//         )
// 
//     [2] => Array
//         (
//             [0] => 3
//             [1] => tres
//             [2] => tres
//         )
// 
//     [3] => Array
//         (
//             [0] => 4
//             [1] => quatro
//             [2] => cuatro
//         )
// 
//     [4] => Array
//         (
//             [0] => 5
//             [1] => cinco
//             [2] => cinco
//         )
// 
// )

Veja também array_filter(), array_reduce().