Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich PHP-Array-Werte innerhalb einer Foreach-Schleife korrekt ändern?

Wie kann ich PHP-Array-Werte innerhalb einer Foreach-Schleife korrekt ändern?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-15 04:59:32751Durchsuche

How Can I Correctly Modify PHP Array Values Within a Foreach Loop?

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

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