PHP
Referenzliste
array_map
Array-Funktionen
Befehl:
array array_map ( callback $callback, array $arr1 [, array $...] )
Parameter-Liste:
Beschreibung | |
---|---|
Callback-Funktion für jedes Element in jedem Array laufen. | |
Ein Array, um durch die Callback-Funktion auszuführen. | |
Variable 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.
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
)
(
[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
)
(
[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
)
)
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.
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
)
)
(
[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"
}
}
["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