Ändern von PHP-Array-Werten in einer Foreach-Schleife (Duplikatkorrektur)
In mehrdimensionalen Arrays kann das Durchlaufen jedes Elements mithilfe einer foreach-Schleife sinnvoll sein Komplexität beim Versuch, das ursprüngliche Array zu ändern.
Bedenken Sie Folgendes Beispiel:
$fields = [ "names" => [ "type" => "text", "class" => "name", "name" => "name", "text_before" => "name", "value" => "", "required" => true, ] ];
Angenommen, Sie haben eine Funktion, die prüft, ob erforderliche Eingaben ausgefüllt sind:
function checkForm($fields) { foreach ($fields as $field) { if ($field['required'] && strlen($_POST[$field['name']]) <= 0) { $fields[$field]['value'] = "Some error"; // Here's the issue } } return $fields; }
Die problematische Zeile ist $fields[$field]['value' ] = „Irgendein Fehler“;. Um das ursprüngliche Array zu ändern, müssen Sie auf den Schlüssel des aktuellen Elements statt auf den Wert zugreifen, wie unten gezeigt:
foreach ($fields as $key => $field) { if ($field['required'] && strlen($_POST[$field['name']]) <= 0) { $fields[$key]['value'] = "Some error"; } }
Beachten Sie die Verwendung von $key innerhalb von $fields[$key]['value '], um auf den Schlüssel des aktuellen Elements in der äußeren Schleife zu verweisen. Dadurch wird sichergestellt, dass das ursprüngliche Array wie vorgesehen geändert wird.
Das obige ist der detaillierte Inhalt vonWie kann ich PHP-Array-Werte innerhalb einer Foreach-Schleife korrekt ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!