Heim > Backend-Entwicklung > PHP-Tutorial > Wie ändere ich ursprüngliche Array-Werte, wenn ich eine Foreach-Schleife in PHP verwende?

Wie ändere ich ursprüngliche Array-Werte, wenn ich eine Foreach-Schleife in PHP verwende?

Mary-Kate Olsen
Freigeben: 2024-12-12 15:53:12
Original
925 Leute haben es durchsucht

How to Modify Original Array Values When Using a Foreach Loop in PHP?

Ändern ursprünglicher Array-Werte mithilfe der Foreach-Schleife in PHP

Mehrdimensionale Arrays können schwierig zu manipulieren sein, insbesondere wenn Sie Werte in ändern müssen ursprüngliches Array während einer Schleife. Sehen wir uns ein häufiges Problem an, das bei der Prüfung auf erforderliche Eingaben und dem Festlegen von Fehlermeldungen in einer foreach-Schleife auftritt.

Im angegebenen Codeausschnitt besteht das Ziel darin, zu überprüfen, ob ein Feld erforderlich ist und seinen entsprechenden Wert im $ Die Variable _POST ist leer. Wenn ja, sollte der Wert des Felds mit einer Fehlermeldung aktualisiert und als Teil des $fields-Arrays zurückgegeben werden.

Das Problem tritt auf, wenn versucht wird, den Wert des aktuellen Felds innerhalb der foreach-Schleife zu aktualisieren. Die Zeile „$fields[$field]['value'] = „Some error“;“ beabsichtigt, den Wert des entsprechenden Felds im Array $fields zu ändern. Da PHP jedoch standardmäßig einen Wert übergibt, wird die tatsächliche Array-Struktur nicht direkt geändert.

Um dieses Problem zu beheben, besteht die Lösung darin, das Array als Referenz zu übergeben (kaufmännisches Und-Symbol „&“). Dadurch kann die foreach-Schleife das ursprüngliche Array ändern, anstatt eine lokale Kopie zu bearbeiten. Durch Hinzufügen von „&“ zur foreach-Schleifendeklaration, wie in der bereitgestellten Antwort vorgeschlagen:

foreach ($fields as $key => $field) {
Nach dem Login kopieren

Die $field-Variable wird jetzt zu einem Alias ​​für das aktuelle Element im $fields-Array. Dies bedeutet, dass alle an $field vorgenommenen Änderungen im ursprünglichen Array widergespiegelt werden.

Folglich lautet die Zeile „$fields[$key]['value'] = „Some error“;“ Aktualisiert den Wert des aktuellen Felds im Array $fields ordnungsgemäß und setzt ihn auf „Irgendein Fehler“, wenn die erforderliche Bedingung erfüllt ist.

Denken Sie daran, die Übergabe als Referenz mit Vorsicht zu verwenden. Wenn Sie sich über die Auswirkungen oder möglichen Nebenwirkungen nicht sicher sind, sollten Sie einen alternativen Ansatz in Betracht ziehen, wie etwa den in der akzeptierten Lösung vorgeschlagenen, der explizit $fields[$key] verwendet, um auf das ursprüngliche Array zuzugreifen und es zu ändern.

Das obige ist der detaillierte Inhalt vonWie ändere ich ursprüngliche Array-Werte, wenn ich eine Foreach-Schleife in PHP verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage