Ä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) {
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!