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

Wie ändere ich ursprüngliche Array-Werte, wenn ich foreach-Schleifen in PHP verwende?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-10 15:53:08814Durchsuche

How to Modify Original Array Values When Using foreach Loops in PHP?

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'] &amp;&amp; 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!

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