PHP -> Funkcie -> Array funkcie -> array_map
Syntax
array array_map ( mixed callback, array pole1 [, array ...] )
Popis
Príkaz jazyka PHP
Aplikuje spätné volanie na elementy daných polí
array_map() vracia pole obsahujúce všetky elementy poľa1 po aplikovaní funkcie callback na každý element. Počet parametrov, ktorý funkcia callback akceptuje, by sa mal zhodovať s počtom polí odoslaných funkcii array_map()
Príklad
<?php
function cube
($n)
{
return $n*
$n*
$n;
}
$a = array
(1, 2, 3, 4, 5
);
$b =
array_map("cube",
$a);
print_r($b);
?>
$b bude obsahovať:
Array
(
[0] => 1
[1] => 8
[2] => 27
[3] => 64
[4] => 125
)
array_map() - používanie viacerých polí:
<?php
function show_Spanish
($n,
$m)
{
return "Cislo $n sa po spanielsky 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] => Cislo 1 sa po spanielsky povie uno
[1] => Cislo 2 sa po spanielsky povie dos
[2] => Cislo 3 sa po spanielsky povie tres
[3] => Cislo 4 sa po spanielsky povie cuatro
[4] => Cislo 5 sa po spanielsky 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 dá jednoducho vytvoriť použitím NULL ako názvu spätného volania funkcie.
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
)
)
Pozri aj
array_filter, array_reduce, array_walk