PHP Handbuch
Zurück |  | Nach vorne

# array_map

(PHP 4 >= 4.0.6)

array_map -- Wendet eine Callback-Funktion auf die Elemente von Arrays an

## Beschreibung

array array_map ( mixed callback, array arr1 [, array arr2...])

array_map() gibt ein Array mit allen Elementen von `arr1` zurück, nachdem die Callback-Funktion auf jedes einzelne Element angewandt wurde. Die Anzahl Parameter, welche Callback-Funktion akzeptiert, sollte der Anzahl der an array_map() übergebenen Arrays entsprechen.

Beispiel 1. array_map()

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

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

Dies speichert in `$b`:

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

Beispiel 2. array_map() - Verwendung mehrerer Arrays

    function show_Spanish($n, $m) {
        return "Die Zahl $n heißt auf Spanisch  $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);

Dies resultiert in:

    // Ausgabe von $c
    Array
    (
        [0] => Die Zahl 1 heißt auf Spanisch  uno
        [1] => Die Zahl 2 heißt auf Spanisch  dos
        [2] => Die Zahl 3 heißt auf Spanisch  tres
        [3] => Die Zahl 4 heißt auf Spanisch  cuatro
        [4] => Die Zahl 5 heißt auf Spanisch  cinco
    )

    // Ausgabe von $d
    Array
    (
        [0] => Array
            (
                [1] => uno
            )

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

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

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

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

    )

Bei Verwendung von zwei oder mehr Arrays sollten diese gewöhnlich die gleiche Länge besitzen, da die Callback-Funktion parallel auf die entsprechenden Elemente angewandt wird. Haben die Arrays unterschiedliche Längen, wird das kürzeste um leere Elemente erweitert.

Eine interessante Anwendung dieser Funktion ist die Konstruktion eines Arrays bestehend aus Arrays, was mit `NULL` als Name der Callback-Funktion leicht realisiert werden kann.

Beispiel 3. Erstellen eines Arrays mit Arrays

    $a = array(1, 2, 3, 4, 5);
    $b = array("eins", "zwei", "drei", "vier", "fünf");
    $c = array("uno", "dos", "tres", "cuatro", "cinco");

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

Würde folgendes ausgeben:

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

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

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

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

        [4] => Array
            (
                [0] => 5
                [1] => fünf
                [2] => cinco
            )

    )

Siehe auch array_filter() und array_reduce().

Zurück | Zum Anfang | Nach vorne
array_keys | Nach oben | array_merge_recursive