Heim >Backend-Entwicklung >PHP-Tutorial >Welche PHP-Array-Manipulationsfunktion ist die richtige für Sie: array_map, array_walk oder array_filter?

Welche PHP-Array-Manipulationsfunktion ist die richtige für Sie: array_map, array_walk oder array_filter?

Barbara Streisand
Barbara StreisandOriginal
2024-10-28 22:55:02342Durchsuche

 Which PHP Array Manipulation Function is Right For You: array_map, array_walk, or array_filter?

Unterscheidende Array-Manipulationsfunktionen: array_map, array_walk und array_filter

Array_map, array_walk und array_filter sind drei PHP-Funktionen, die häufig zum Durchlaufen verwendet werden und Arrays manipulieren. Während ihnen die Funktionalität der Anwendung einer Callback-Funktion auf ein Array gemeinsam ist, unterscheiden sie sich in bestimmten Schlüsselaspekten.

Array-Werte ändern

Array_walk ermöglicht das Ändern der Werte des Eingabearray während der Iteration, während array_map dies nicht tut. Diese Unterscheidung ist entscheidend, wenn Sie Array-Elemente direkt ändern möchten.

Array-Schlüsselzugriff

Array_map arbeitet ausschließlich mit den Werten eines Arrays und ignoriert dessen Schlüssel. Im Gegensatz dazu bietet array_walk Zugriff auf Array-Schlüssel und -Werte und ermöglicht so schlüsselbasierte Manipulationen.

Rückgabewert

Array_map gibt ein neues Array zurück, das durch die Callback-Funktion transformiert wurde , während array_walk einen booleschen Wert zurückgibt, der den Erfolg seiner Operation angibt. Wenn Sie als Ergebnis ein neues Array benötigen, ist array_map die richtige Wahl. Andernfalls kann array_walk eine bessere Leistung erzielen.

Iterieren mehrerer Arrays

Array_map kann mehrere Eingabearrays verarbeiten, gleichzeitig über sie iterieren und die Rückruffunktion parallel anwenden. Array_walk hingegen arbeitet jeweils auf einem einzelnen Array.

Callback-Parameter

Array_walk unterstützt die Übergabe eines zusätzlichen Parameters an die Callback-Funktion. Dieser Parameter kann nützlich sein, um der Rückruflogik zusätzlichen Kontext oder Daten bereitzustellen. Aufgrund der Einführung anonymer Funktionen in PHP 5.3 ist diese Funktion jedoch im Allgemeinen weniger relevant.

Größe des zurückgegebenen Arrays

Die Länge des zurückgegebenen Arrays in array_map entspricht der Länge des längsten Eingabearrays. Array_walk gibt kein Array zurück und seine Operation hat keinen Einfluss auf die Größe des ursprünglichen Arrays. Array_filter hingegen behält die Teilmenge der Elemente bei, die die Rückrufbedingung erfüllen.

Beispiel

Um diese Unterschiede zu veranschaulichen, betrachten Sie das folgende Beispiel:

<code class="php">$origArray1 = [2.4, 2.6, 3.5];
$origArray2 = [2.4, 2.6, 3.5];

// array_map: cannot modify values
$result1 = array_map('floor', $origArray1);
print_r($result1); // Does not change $origArray1

// array_walk: can modify values
array_walk($origArray2, function (&$value, $key) { $value = floor($value); });
print_r($origArray2); // Modifies $origArray2

// array_filter: select elements
$result2 = array_filter($origArray1, function($value) { return $value > 2.5; });
print_r($result2); // Only returns elements greater than 2.5</code>

Dieses Beispiel zeigt, wie sich die einzelnen Funktionen unterscheiden und hebt ihre Eignung für bestimmte Szenarien hervor. Wenn Sie diese Unterschiede verstehen, können Sie die für Ihre Array-Manipulationsanforderungen am besten geeignete Funktion auswählen.

Das obige ist der detaillierte Inhalt vonWelche PHP-Array-Manipulationsfunktion ist die richtige für Sie: array_map, array_walk oder array_filter?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn