array_map

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 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 :








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)

 
;

 
?



Resultará em :

 
/

 
/

 
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)

 
;

 
?





A saída do programa acima seria :






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