array_keys
array_merge_recursive
Funções para Array
PHP Manual

# array_map

(PHP 4 >= 4.0.6, PHP 5)

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

### Descrição

array array_map ( callback `$callback` , array `$arr1` [, array `$...` ] )

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

### Parâmetros

`callback`

  Função callback para executar para cada elementos dos arrays.

`arr1`

  Um array para percorrer chamando função `callback` .

`array`

  Variável lista de argumentos array para percorrer chamando a função `callback` .

### Valor Retornado

Retorna um array contendo todos elementos de `arr1` depois de ter aplicado a função `callback` para cada um.

### Exemplos

Exemplo #1 Exemplo de array_map()

`<?php
function cubo($n)
{
return $n*$n*$n;
}
$a = array(1, 2, 3, 4, 5);
$b = array_map("cubo", $a);
print_r($b);
?>`

E programa acima faz com que $b tenha:

    Array
    (
        [0] => 1
        [1] => 8
        [2] => 27
        [3] => 64
        [4] => 125
    )

### Exemplos

Exemplo #2 array_map() - usando mais de um array

`<?php
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);
$d = array_map("map_Espanhol", $a , $b);
print_r($d);
?>`

O exemplo acima irá imprimir:

    // Saída de $c
    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
    )

    // Saída de $d
    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 nos elementos correpondentes. Se os arrays tem tamanhos diferentes, o menor array será extendido com elementos vazios.

Uma forma interessante de se usar esta 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

`<?php
$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);
?>`

O exemplo acima irá imprimir:

    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
            )

    )

Se o array do argumento contém chaves string, então o array retornado conterá chaves string se e somente se exatamente um array é passado. Se mais que um argumento é passado, então o array retornado sempre terá chaves inteiras.

Exemplo #4 array_map() - com chaves 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));
?>`

O exemplo acima irá imprimir:

    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"
      }
    }

### Veja Também

- array_filter() - Filtra os elementos da array usando uma função de callback
- array_reduce() - Reduz um array para um único valor através de um processo iterativo utilizando uma função
- array_walk() - Aplica uma determinada funcão em cada elemento de um array
- create_function() - Cria uma função anônima (lambda-style)

informações sobre o tipo callback

array_keys
array_merge_recursive
Funções para Array
PHP Manual