Manual do PHP
Anterior |  | Próxima

# 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()

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
    )

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
            )

    )

Veja também array_filter(), array_reduce() , array_walk(), create_function(), e informações sobre o tipo callback.

Anterior | Principal | Próxima
array_keys | Acima | array_merge_recursive