Heim >Backend-Entwicklung >PHP-Tutorial >Wie ändere ich ursprüngliche Array-Werte, wenn ich foreach-Schleifen in PHP verwende?
Beibehaltung der ursprünglichen Array-Werte beim Iterieren mit foreach in PHP
Beim Arbeiten mit mehrdimensionalen Arrays in PHP kann es schwierig sein, das Original zu ändern Array, während es mit foreach-Schleifen durchlaufen wird. Diese Frage befasst sich mit diesem Problem, bei dem das Ziel darin besteht, den Wertschlüssel in einem verschachtelten Array zu ändern.
Im gegebenen Beispiel ist das Ändern des ursprünglichen Arrays mit $fields[$field]['value'] nicht der Fall Funktioniert wie erwartet. Das Problem entsteht, weil die foreach-Schleifen von PHP Werte als Referenz für Arrays (jedoch nicht für Objekte) übergeben. Dies bedeutet, dass Änderungen an der Variablen $field keine Auswirkungen auf das ursprüngliche Array haben.
Um dieses Problem zu beheben, wird empfohlen, während der Schleife den Array-Schlüssel zu verwenden. Der in der Antwort bereitgestellte aktualisierte Code zeigt dies:
foreach ($fields as $key => $field) { if ($field['required'] && strlen($_POST[$field['name']]) <= 0) { $fields[$key]['value'] = "Some error"; } }
In diesem Code stellt $key den Schlüssel des aktuellen Array-Elements dar. Durch die Verwendung von $fields[$key] greifen wir auf das ursprüngliche Array zu und ändern den richtigen Wert. Dadurch wird sichergestellt, dass die innerhalb der Schleife vorgenommenen Änderungen im ursprünglichen Array widergespiegelt werden, das von der checkForm-Funktion zurückgegeben wird.
Das obige ist der detaillierte Inhalt vonWie ändere ich ursprüngliche Array-Werte, wenn ich foreach-Schleifen in PHP verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!