array_map
(PHP 4 >= 4.0.6)
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ť:
Array
(
[0] => 1
[1] => 8
[2] => 27
[3] => 64
[4] => 125
) |
|
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 dá
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().