Du bist hier: Tips » Scripte » PHP
PHP
Referenzliste

array_map

Array-Funktionen

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


    Parameter-Liste:
NameBeschreibung
callbackCallback-Funktion für jedes Element in jedem Array laufen.
arr1Ein Array, um durch die Callback-Funktion auszuführen.
arrayVariable Liste von Array-Argumenten durch die Callback-Funktion auszuführen.

    Rückgabewerte:
Gibt ein Array zurück, dass alle Elemente von arr1 enthält, nachdem die callback-Funktion auf jedes Element angewendet wurde.

    Beschreibung:
Die Funktion array_map() gibt ein Array zurück, nachdem sie alle Elemente des ursprünglichen Arrays arr1 und eventuell der weiteren als Argumente übergebenen Arrays (arr2 usw.) an die Funktion callback übergeben hat.

Das Ergebnis-Array besteht aus den Rückgabewerten dieser Callback-Funktion. Sie sollten darauf achten, dass die zu uebergebenen Arrays alle die gleiche Länge haben da ansonsten das kürzeste Array um leere Elemente aufgefüllt wird.

Im Beispiel 2 sehen Sie eine interessante Lösung wie verschachtelte Arrays erstellt werden können, wobei als Callback-Funktion NULL angegeben wird.


    Aktiv in Version:
(PHP 4 >= 4.0.6, PHP 5, PHP 7)

    Tips:
Tips:

Wenn das Array-Argument enthält String-Schlüssel, dann das zurückgegebene Array String-Schlüssel enthalten, wenn und nur wenn genau ein Array übergeben wird. Wenn mehr als ein Argument übergeben dann das zurückgegebene Array hat immer Integer-Schlüssel.


    Siehe auch:
Filtert Elemente eines Arrays mittels einer Callback-Funktion
 
Iterative Reduktion eines Arrays zu einem Wert mittels einer Callbackfunktion
 
Wendet eine Benutzerfunktion auf jedem Element eines Arrays an
 
Erzeugen einer anonymen / temporären (Lambda-Stil) Funktion
 

array_map() - Beispiel:


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

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


Ausgabe:
Array
(
    [0] => 1
    [1] => 8
    [2] => 27
    [3] => 64
    [4] => 125
)
array_map() - Beispiel 2: mit einer Lambda-Funktion (seit PHP 5.3.0)


Eingabe:
<?php

/* Seit PHP 5.3.0 */

$func = function($value) { return $value * 2; };

print_r(array_map($func, range(1, 5)));

?>


Ausgabe:
Array
(
    [0] => 2
    [1] => 4
    [2] => 6
    [3] => 8
    [4] => 10
)
array_map() - Beispiel 3: Verwendung mehrerer Arrays


Eingabe:
<?php
function show_Spanish($n, $m)
{
    return("Die Zahl $n heisst 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);
?>


Ausgabe:
// Ausgabe von $c
Array
(
    [0] => Die Zahl 1 heisst auf Spanisch uno
    [1] => Die Zahl 2 heisst auf Spanisch dos
    [2] => Die Zahl 3 heisst auf Spanisch tres
    [3] => Die Zahl 4 heisst auf Spanisch cuatro
    [4] => Die Zahl 5 heisst 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
        )

)

Beschreibung:
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.
array_map() - Beispiel 4: Erstellen eines Arrays mit Arrays


Eingabe:
<?php
$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);
?>


Ausgabe:
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
        )

)

Beschreibung:
Wenn das Array-Argument String-Schl�ssel enth�lt, wird das zur�ckgegebene Array String-Schl�ssel enthalten sofern genau ein Array �bergeben wurde. Sollten mehrere Arrays �bergeben werden, so hat das zur�ckgegebene Array immer Integer-Schl�ssel.
array_map() - Beispiel 5:


Eingabe:
<?php
$arr = array("stringkey" => "value");
function cb1($a) {
    return array ($a);
}
function cb2($a, $b) {
    return array ($a, $b);
}
var_dump(array_map("cb1", $arr));
var_dump(array_map("cb2", $arr, $arr));
var_dump(array_map(null,  $arr));
var_dump(array_map(null, $arr, $arr));
?>


Ausgabe:
array(1) {
  ["stringkey"]=>
  array(1) {
    [0]=>
    string(5) "value"
  }
}
array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(5) "value"
    [1]=>
    string(5) "value"
  }
}
array(1) {
  ["stringkey"]=>
  string(5) "value"
}
array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(5) "value"
    [1]=>
    string(5) "value"
  }
}
Array-Funktionen