array_map

(PHP 4 >= 4.0.6)

array_map --  Wykonuje funkcję zwrotną na elementach podanej tablicy

Opis

array array_map ( mixed funkcja_zwrotna, array tbl1 [, array tbl2...])

array_map() zwraca tablicę zawierającą wszystkie elementy tablicy tbl1 po użyciu na każdej z nich funkcji zwrotnej. Liczba parametrów funkcji zwrotnej powinna być równa liczbie tablic przekazanych do funkcji array_map().

Przykład 1. Przykład użycia array_map()

function szescian($n) {
    return $n*$n*$n;
}

$a = array(1, 2, 3, 4, 5);
$b = array_map("szescian", $a);

W powyższej funkcji tablica $b zawiera array (1, 8, 27, 64, 125);

Przykład 2. array_map() - używanie większej ilości tablic

function pokaz_po_Hiszpansku($n, $m) {
    return "Po Hiszpańsku liczba $n to $m";
}

function mapuj_na_Hiszpanski($n, $m) {
    return array ($n => $m);
}

$a = array(1, 2, 3, 4, 5);
$b = array("uno", "dos", "tres", "cuatro", "cinco");

$c = array_map("pokaz_po_Hiszpansku", $a, $b);

print_r($c);

// will output:
// Array 
// (
//     [0] => Po Hiszpańsku liczba 1 to uno
//     [1] => Po Hiszpańsku liczba 2 to dos
//     [2] => Po Hiszpańsku liczba 3 to tres
//     [3] => Po Hiszpańsku liczba 4 to cuatro
//     [4] => Po Hiszpańsku liczba 5 to cinco
// )

$d = array_map("mapuj_po_Hiszpansku", $a , $b);

print_r($d);

// wyświetli:
// Array 
// (
//     [0] => Array
//         (
//             [1] => uno
//         )
// 
//     [1] => Array
//         (
//             [2] => dos
//         )
// 
//     [2] => Array
//         (
//             [3] => tres
//         )
// 
//     [3] => Array
//         (
//             [4] => cuatro
//         )
// 
//     [4] => Array
//         (
//             [5] => cinco
//         )
// 
// )

Zazwyczaj używając dwóch lub więcej tablic, powinny one być równej długości, ponieważ funkcja zwrotna jest wykonywana na odpowiadających sobie elementach tablic. Jeśli tablice są różnych długości, krótsze będą rozszerzane używając pustych elementów.

Interesującym sposobem użycia tej funkcji jest kontruowanie tablicy tablic, co może być łatwo przeprowadzone przez podanie NULL jako nazwy funkcji zwrotnej.

Przykład 3. Tworzenie tablicy tablic

$a = array(1, 2, 3, 4, 5);
$b = array("one", "two", "three", "four", "five");
$c = array("uno", "dos", "tres", "cuatro", "cinco");
$d = array("jeden", "dwa", "trzy", "cztery", "pięć");

$e = array_map(null, $a, $b, $c, $d);
print_r($e);

// wyświetli:
// Array
// (
//     [0] => Array
//         (
//             [0] => 1
//             [1] => one
//             [2] => uno
//             [3] => jeden
//         )
// 
//     [1] => Array
//         (
//             [0] => 2
//             [1] => two
//             [2] => dos
//             [3] => dwa
//         )
// 
//     [2] => Array
//         (
//             [0] => 3
//             [1] => three
//             [2] => tres
//             [3] => trzy
//         )
// 
//     [3] => Array
//         (
//             [0] => 4
//             [1] => four
//             [2] => cuatro
//             [3] => cztery
//         )
// 
//     [4] => Array
//         (
//             [0] => 5
//             [1] => five
//             [2] => cinco
//             [3] => pięć
//         )
// 
// )

Patrz także array_filter(), array_reduce().