array_map

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

Beschreibung

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

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

Beispiel 1 . array_map( )




Dies speichert in $b :








Beispiel 2 . array_map( ) - Verwendung mehrerer Arrays

 
?php

 
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

 
?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)

 
;

 
?





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( ) , array_reduce( ) und array_walk( ) .