Heim  >  Artikel  >  Backend-Entwicklung  >  Wann werden array_map, array_walk und array_filter in PHP verwendet?

Wann werden array_map, array_walk und array_filter in PHP verwendet?

Barbara Streisand
Barbara StreisandOriginal
2024-10-28 09:52:02867Durchsuche

 When to Use array_map, array_walk, and array_filter in PHP?

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>

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!

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