Erklärung der Unterschiede zwischen array_map, array_walk und array_filter
Array-Funktionen in PHP bieten praktische Möglichkeiten zum Bearbeiten von Arrays. Unter diesen werden häufig array_map, array_walk und array_filter verwendet. Obwohl sie Ähnlichkeiten aufweisen, gibt es wesentliche Unterschiede in ihrem Verhalten.
Funktionsübersicht
-
array_map: Wendet auf jede eine Rückruffunktion an Element des/der Array(s) und gibt ein neues Array zurück, das die Ergebnisse enthält.
-
array_walk: Wendet eine Rückruffunktion auf jedes Element des Arrays an und aktualisiert das ursprüngliche Array an Ort und Stelle.
-
array_filter:Entfernt Elemente aus dem Array basierend auf einer Rückruffunktion und gibt ein neues Array zurück, das nur die Elemente enthält, die die Bedingung erfüllen.
Hauptunterschiede
-
Array-Änderung: array_walk ändert das ursprüngliche Array, array_map hingegen nicht.
-
Schlüsselzugriff: array_walk ermöglicht den Zugriff zu Array-Schlüsseln innerhalb der Rückruffunktion, während array_map dies nicht tut.
-
Rückgabewerte: array_map gibt ein neues Array zurück, während array_walk true zurückgibt. array_filter gibt ebenfalls ein neues Array zurück, enthält aber nur die gefilterten Elemente.
-
Iteration: array_map kann über mehrere Arrays gleichzeitig iterieren, während array_walk nur über ein Array iteriert.
- Beliebige Datenübergabe: array_walk kann einen zusätzlichen Parameter zur Übergabe an den Rückruf akzeptieren, eine Option, die in PHP 5.3 eingeführt wurde.
-
Zurückgegebene Array-Länge: Das resultierende Array von array_map stimmt mit überein Länge des größten Eingabearrays, während sich die Länge des Arrays von array_walk nicht ändert. array_filter gibt ein Array zurück, das der Länge der gefilterten Elemente entspricht.
Anschauliche Beispiele
<code class="php">$a = [2.4, 2.6, 3.5];
// array_map
$b = array_map('floor', $a); // $a remains unchanged
print_r($b); // Output: [2, 2, 3]
// array_walk
array_walk($a, 'floor'); // Modifies $a
print_r($a); // Output: [2, 2, 3]
// array_filter
$c = array_filter($a, fn($v) => $v > 2.5); // Filter elements
print_r($c); // Output: [2.6, 3.5]</code>
Nach dem Login kopieren
Zusammenfassend lässt sich sagen, dass array_map, array_walk und array_filter jeweils Folgendes haben spezifische Rollen bei der Array-Manipulation. Das Verständnis ihrer Unterschiede ermöglicht es Entwicklern, die für ihre Aufgabe am besten geeignete Funktion auszuwählen.
Das obige ist der detaillierte Inhalt vonWann werden array_map, array_walk und array_filter in PHP verwendet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!