Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich ursprüngliche Array-Werte mithilfe einer foreach-Schleife in PHP ändern?
Ändern ursprünglicher Array-Werte mithilfe der foreach-Schleife in PHP
Bei der Arbeit mit Arrays in PHP, insbesondere mehrdimensionalen Arrays, kann auf deren Elemente zugegriffen und diese geändert werden knifflig sein. Eine häufige Herausforderung entsteht bei der Verwendung von foreach-Schleifen, um Arrays zu durchlaufen und ihre ursprünglichen Werte zu aktualisieren.
In diesem Fall betrachten wir ein Array $fields, das Formularfeldinformationen darstellt:
$fields = [ "names" => [ "type" => "text", "class" => "name", "name" => "name", "text_before" => "name", "value" => "", "required" => true, ] ];
Nun, Stellen Sie sich eine Funktion vor, die die Felder validiert und den Schlüssel „Wert“ auf „Einiger Fehler“ setzt, wenn die entsprechende Formulareingabe vorliegt leer:
function checkForm($fields) { foreach ($fields as $field) { if ($field['required'] && strlen($_POST[$field['name']]) <= 0) { $fields[$field]['value'] = "Some error"; } } return $fields; }
Die problematische Zeile lautet:
$fields[$field]['value'] = "Some error";
Das Ziel hier ist, das ursprüngliche Array zu aktualisieren, aber es ist nicht sofort klar, wie man auf den Array-Schlüssel zugreift (in diesem Fall). , „Namen“) innerhalb der Schleife.
Verwendung von $key für Original-Array Indizierung
Eine Lösung besteht darin, die in der foreach-Schleife verfügbare Variable $key zu verwenden. Es stellt den Schlüssel des aktuellen Array-Elements dar, über das iteriert wird:
foreach ($fields as $key => $field) { if ($field['required'] && strlen($_POST[$field['name']]) <= 0) { $fields[$key]['value'] = "Some error"; } }
Dieser Ansatz verwendet $field, um auf die Werte des aktuellen Felds zuzugreifen, und $fields[$key], um das ursprüngliche Array zu manipulieren, was eine effiziente Änderung ermöglicht des „Wert“-Schlüssels des Elements.
Das obige ist der detaillierte Inhalt vonWie kann ich ursprüngliche Array-Werte mithilfe einer foreach-Schleife in PHP ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!