array_map

array_map -- Aplikuje spätné volanie na elementy daných polí

Popis

array array_map ( callback funkcia, array pole1 [, array pole2...])

array_map( ) vracia pole obsahujúce všetky elementy poľa1 po aplikovaní spätného volania funkcie na každý element . Počet parametrov , ktoré spätné volanie funkcie akceptuje , by sa mal zhodovať s počtom polí odoslaných funkcii array_map( )

Príklad 1 . array_map( ) príklad

 
?php

 
function

 
cube(

 
$n

 
)

 
{

 
return

 
$n*$n*$n

 
;

 
}

 
$a

 
=

 
array(1

 
,

 
2

 
,

 
3

 
,

 
4

 
,

 
5)

 
;

 
$b

 
=

 
array_map("kocka"

 
,

 
$a)

 
;

 
print_r($b)

 
;

 
?



$b bude obsahovať :








Príklad 2 . array_map( ) - používanie viacerých polí

 
?php

 
function

 
show_Spanish(

 
$n

 
,

 
$m

 
)

 
{

 
return

 
"Číslo

 
$n

 
sa

 
po

 
španielsky

 
povie

 
$m"

 
;

 
}

 
function

 
map_Spanish($n

 
,

 
$m

 
)

 
{

 
return

 
array

 
($n

 
=

 
$m)

 
;

 
}

 
$a

 
=

 
array(1

 
,

 
2

 
,

 
3

 
,

 
4

 
,

 
5)

 
;

 
$b

 
=

 
array("uno"

 
,

 
"dos"

 
,

 
"tres"

 
,

 
"cuatro"

 
,

 
"cinco")

 
;

 
$c

 
=

 
array_map("show_Spanish"

 
,

 
$a

 
,

 
$b)

 
;

 
print_r($c)

 
;

 
$d

 
=

 
array_map("map_Spanish"

 
,

 
$a

 
,

 
$b)

 
;

 
print_r($d)

 
;

 
?



Výsledkom je :

 
/

 
/

 
výpis

 
$c

 
Array

 
(

 
[0

 
]

 
=

 
Číslo

 
1

 
sa

 
po

 
španielsky

 
povie

 
uno

 
[1

 
]

 
=

 
Číslo

 
2

 
sa

 
po

 
španielsky

 
povie

 
dos

 
[2

 
]

 
=

 
Číslo

 
3

 
sa

 
po

 
španielsky

 
povie

 
tres

 
[3

 
]

 
=

 
Číslo

 
4

 
sa

 
po

 
španielsky

 
povie

 
cuatro

 
[4

 
]

 
=

 
Číslo

 
5

 
sa

 
po

 
španielsky

 
povie

 
cinco

 
)

 
/

 
/

 
výpis

 
$d

 
Array

 
(

 
[0

 
]

 
=

 
Array

 
        (

 
[1

 
]

 
=

 
uno

 
        )

 
[1

 
]

 
=

 
Array

 
        (

 
[2

 
]

 
=

 
dos

 
        )

 
[2

 
]

 
=

 
Array

 
        (

 
[3

 
]

 
=

 
tres

 
        )

 
[3

 
]

 
=

 
Array

 
        (

 
[4

 
]

 
=

 
cuatro

 
        )

 
[4

 
]

 
=

 
Array

 
        (

 
[5

 
]

 
=

 
cinco

 
        )

 

)







Zvyčajne , keď sa používajú dve alebo viac polí , mali by byť rovnakej dĺžky , pretože spätné volanie funkcie sa aplikuje paralelne na korešpondujúce elementy . Ak polia nemajú rovnakú dĺžku , najkratšie sa rozšíri o prázdne elementy .

Zaujímavé využitie tejto funkcie je vybudovanie poľa polí , ktoré sa jednoducho vytvoriť použitím NULL ako názvu spätného volania funkcie .

Príklad 3 . Vytváranie poľa polí

 
?php

 
$a

 
=

 
array(

 
1

 
,

 
2

 
,

 
3

 
,

 
4

 
,

 
5)

 
;

 
$b

 
=

 
array("jeden"

 
,

 
"dva"

 
,

 
"tri"

 
,

 
"styri"

 
,

 
"pat")

 
;

 
$c

 
=

 
array("uno"

 
,

 
"dos"

 
,

 
"tres"

 
,

 
"cuatro"

 
,

 
"cinco")

 
;

 
$d

 
=

 
array_map(null

 
,

 
$a

 
,

 
$b

 
,

 
$c)

 
;

 
print_r($d)

 
;

 
?





Horeuvedený program vypíše :

 
Array

 
(

 
[0

 
]

 
=

 
Array

 
        (

 
[0

 
]

 
=

 
1

 
[1

 
]

 
=

 
jeden

 
[2

 
]

 
=

 
uno

 
        )

 
[1

 
]

 
=

 
Array

 
        (

 
[0

 
]

 
=

 
2

 
[1

 
]

 
=

 
dva

 
[2

 
]

 
=

 
dos

 
        )

 
[2

 
]

 
=

 
Array

 
        (

 
[0

 
]

 
=

 
3

 
[1

 
]

 
=

 
tri

 
[2

 
]

 
=

 
tres

 
        )

 
[3

 
]

 
=

 
Array

 
        (

 
[0

 
]

 
=

 
4

 
[1

 
]

 
=

 
styri

 
[2

 
]

 
=

 
cuatro

 
        )

 
[4

 
]

 
=

 
Array

 
        (

 
[0

 
]

 
=

 
5

 
[1

 
]

 
=

 
pat

 
[2

 
]

 
=

 
cinco

 
        )

 

)





Tiež pozri array_filter( ) , array_reduce( ) a array_walk( ) .