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