Forum und email

array_map

(PHP 4 >= 4.0.6, PHP 5)

array_map — Udfører en callback funktion på alle elementer i de givende arrays

Beskrivelse

array array_map ( callback $callback , array $arr1 [, array $... ] )

array_map() returnerer et array som indeholder alle elementer fra arr1 efter at have kørt dem igennem callback funktionen. Antallet af parameter callback funktionen accepterer skal være samme antal som der gives til array_map()

Example#1 array_map() eksempel

<?php
function cube($n
{
    return(
$n $n $n);
}

$a = array(12345);
$b array_map("cube"$a);
print_r($b);
?>

Ovenstående eksempel vil udskrive:

Array
(
    [0] => 1
    [1] => 8
    [2] => 27
    [3] => 64
    [4] => 125
)

Example#2 array_map() - ved flere arrays

<?php
function vis_spansk($n$m
{
    return(
"Tallet $n hedder $m på spansk");
}

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

$a = array(12345);
$b = array("uno""dos""tres""cuatro""cinco");

$c array_map("vis_spansk"$a$b);
print_r($c);

$d array_map("map_spansk"$a $b);
print_r($d);
?>

Ovenstående eksempel vil udskrive:

// indholdet af $c
Array
(
    [0] => Tallet 1 hedder uno spanish
    [1] => Tallet 2 hedder dos spanish
    [2] => Tallet 3 hedder tres spanish
    [3] => Tallet 4 hedder cuatro spanish
    [4] => Tallet 5 hedder cinco spanish
)

// indholdet af $d
Array
(
    [0] => Array
        (
            [1] => uno
        )

    [1] => Array
        (
            [2] => dos
        )

    [2] => Array
        (
            [3] => tres
        )

    [3] => Array
        (
            [4] => cuatro
        )

    [4] => Array
        (
            [5] => cinco
        )

)

Når du bruger flere arrays skulle de gerne være sammen længde, da callback funktionen behandler værdierne parellelt igennem de forskellige arrays. Hvis de ikke har samme længde, vil den korteste blive forlænget med tomme værdier.

Denne funktion kan også bruges som en smart måde at få et array af arrays. Dette kan gøres ved at bruge NULL som navnet på callback funktionen.

Example#3 Lave et array af arrays

<?php
$a 
= array(12345);
$b = array("one""two""three""four""five");
$c = array("uno""dos""tres""cuatro""cinco");

$d array_map(null$a$b$c);
print_r($d);
?>

Ovenstående eksempel vil udskrive:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => one
            [2] => uno
        )

    [1] => Array
        (
            [0] => 2
            [1] => two
            [2] => dos
        )

    [2] => Array
        (
            [0] => 3
            [1] => three
            [2] => tres
        )

    [3] => Array
        (
            [0] => 4
            [1] => four
            [2] => cuatro
        )

    [4] => Array
        (
            [0] => 5
            [1] => five
            [2] => cinco
        )

)

Se også array_filter(), array_reduce(), array_walk() og information omkring callback typen