W3docs

PHP Array Map Funktion: Ein umfassender Leitfaden

Die Funktion array_map in PHP ist ein unverzichtbares Werkzeug zur Transformation von Arrays. Sie wendet eine Callback-Funktion auf jedes Element an.

Die Funktion array_map in PHP ist ein unverzichtbares Werkzeug zur Transformation von Daten-Arrays. Sie ermöglicht es Entwicklern, eine Callback-Funktion auf jedes Element eines Arrays anzuwenden und anschließend ein neues Array mit den Ergebnissen zurückzugeben. Dies ist eine vielseitige und leistungsstarke Technik zur Datenverarbeitung in PHP und lässt sich für eine Vielzahl von Anwendungsfällen einsetzen.

Wie funktioniert array_map?

Die grundlegende Syntax der Funktion array_map lautet wie folgt:

PHP array_map Funktionssyntax

array_map(callback, array1, array2, ...);

Hier ist das Argument callback die Funktion, die auf jedes Element der Arrays angewendet wird. Die weiteren Argumente sind die zu verarbeitenden Arrays. Betrachten Sie zum Beispiel den folgenden Code:

PHP Beispiel zur Verwendung der array_map Funktion

php— editable, runs on the server

Dieser Code definiert eine einfache Funktion square, die eine Zahl entgegennimmt und ihr Quadrat zurückgibt. Die Funktion array_map wird dann verwendet, um diese Funktion auf jedes Element des Arrays $numbers anzuwenden. Das Ergebnis ist ein neues Array $squared, das die Quadrate der ursprünglichen Zahlen enthält.

Hinweis zu Array-Längen: Wenn mehrere Arrays an array_map übergeben werden, wird die Verarbeitung bis zum längsten Array fortgesetzt. Haben Arrays unterschiedliche Längen, werden fehlende Elemente in kürzeren Arrays automatisch als null behandelt.

Hinweis zur modernen Syntax: Ab PHP 7.4+ können Arrow-Funktionen für kompakte Callbacks verwendet werden. Beispiel: array_map(fn($n) => $n * $n, $numbers);

Praxisbeispiele für array_map

Die Funktion array_map ist äußerst vielseitig und kann in vielen verschiedenen Zusammenhängen eingesetzt werden. Hier sind einige Beispiele, die ihre Leistungsfähigkeit verdeutlichen:

Arrays von Zeichenketten transformieren

PHP Transformation von string-Arrays mit der array_map Funktion

php— editable, runs on the server

In diesem Beispiel wird die Funktion array_map verwendet, um ein Array von Zeichenketten in Großbuchstaben umzuwandeln. Die Funktion upper nimmt eine Zeichenkette entgegen und gibt ihre Entsprechung in Großbuchstaben zurück. Wenn diese Funktion auf jedes Element des Arrays $words angewendet wird, ist das Ergebnis ein neues Array mit den Großbuchstabenversionen der ursprünglichen Wörter.

Arrays mit array_map kombinieren

PHP Arrays mit array_map kombinieren

php— editable, runs on the server

In diesem Beispiel werden zwei Arrays, $a und $b, zu einem dritten Array $c zusammengeführt. Die Funktion sum nimmt zwei Argumente entgegen und gibt deren Summe zurück. Die Funktion array_map wird verwendet, um diese Funktion auf jedes entsprechende Elementpaar aus $a und $b anzuwenden. Das Ergebnis ist ein neues Array $c, das die Summen der ursprünglichen Paare enthält.

Arrays mit einem null-Callback zusammenfügen

Wenn Sie null als Callback übergeben, verknüpft array_map die Arrays miteinander — jedes Ergebniselement ist ein Array der entsprechenden Werte aus jedem Eingabe-Array. Dies ist praktisch, um zusammengehörige Daten zu paaren, ohne eine eigene Funktion schreiben zu müssen.

PHP Arrays mit array_map und einem null-Callback zusammenfügen

<?php

$ids   = [1, 2, 3];
$names = ['Alice', 'Bob', 'Carol'];

$pairs = array_map(null, $ids, $names);

print_r($pairs);

?>

Das Ergebnis ist [[1, 'Alice'], [2, 'Bob'], [3, 'Carol']] — ein inneres Array pro Zeile.

Fallstricke und Besonderheiten

  • Schlüssel werden nur bei einem einzelnen Array beibehalten. Wenn ein Array übergeben wird, behält array_map die ursprünglichen Schlüssel. Bei zwei oder mehr Arrays wird das Ergebnis mit fortlaufenden Integer-Schlüsseln neu indiziert, sodass string-Schlüssel verloren gehen.
  • array_map verändert das ursprüngliche Array nicht. Es gibt immer ein neues Array zurück. Wenn Sie ein Array direkt transformieren möchten, verwenden Sie stattdessen array_walk.
  • Der Callback muss aufrufbar sein. Übergeben Sie einen string-Funktionsnamen ('square'), eine anonyme Funktion, eine Arrow-Funktion oder ein Array [$object, 'method']. Die vollständige Liste der akzeptierten Formen finden Sie unter PHP Callback-Funktionen.

Wann array_map gegenüber anderen Array-Funktionen verwenden?

  • Verwenden Sie array_map, um jedes Element in einen neuen Wert zu transformieren (ein Eingabeelement → ein Ausgabeelement).
  • Verwenden Sie array_filter, wenn Sie nur die Elemente behalten möchten, die eine Bedingung erfüllen.
  • Verwenden Sie array_reduce, wenn Sie das Array auf einen einzelnen Wert reduzieren möchten, beispielsweise eine Summe oder eine verkettete Zeichenkette.

Fazit

Die Funktion array_map in PHP ist ein ungemein leistungsstarkes Werkzeug zur Transformation von Daten-Arrays. Ob Sie Zeichenketten in Großbuchstaben umwandeln, Arrays kombinieren oder andere Berechnungen durchführen — array_map ist das ideale Werkzeug für die Aufgabe. Mit ihrer flexiblen Syntax und der Fähigkeit, gleichzeitig mit mehreren Arrays zu arbeiten, ist sie eine unverzichtbare Funktion für jeden PHP-Entwickler.

Übungen

Übung
Was trifft auf die Funktion array_map() in PHP zu?
Was trifft auf die Funktion array_map() in PHP zu?
Was this page helpful?