Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich Array-Objekte während einer zerstörungsfreien Foreach-Schleife in PHP ändern?

Wie kann ich Array-Objekte während einer zerstörungsfreien Foreach-Schleife in PHP ändern?

Barbara Streisand
Barbara StreisandOriginal
2024-12-15 03:20:09588Durchsuche

How Can I Modify Array Objects During a Non-Destructive Foreach Loop in PHP?

Zerstörungsfreie Schleifeniteration mit geänderten Objektwerten

Beim Durchlaufen eines Arrays mithilfe einer foreach-Schleife kann es wünschenswert sein, die zu ändern aktuelles Objekt, das in der Schleife behandelt wird. Dies kann mit zwei Ansätzen erreicht werden.

Ansatz 1: Array-Schlüsselerhaltung verwenden

Um den Schlüssel des aktuellen Objekts beizubehalten, verwenden Sie die folgende Syntax:

foreach($questions as $key => $question){
    $questions[$key]['answers'] = $answers_model->get_answers_by_question_id($question['question_id']);
}

Hier wird der Schlüssel ($key) gespeichert und verwendet, um den entsprechenden Wert in den Haupt-$fragen zu aktualisieren Variable.

Ansatz 2: Referenzzuweisung verwenden

Alternativ wird durch Hinzufügen des & zum foreach-Schleifenwert die Variable $questions direkt aktualisiert:

foreach($questions as &$question){

Dieser Ansatz ändert den Wert durch Referenz und hält das $questions-Array auf dem neuesten Stand. Generell wird jedoch der erste Ansatz empfohlen.

Hinweis zur PHP-Dokumentation:

Laut der PHP-foreach-Dokumentation:

"Um in der Lage zu sein Um Array-Elemente innerhalb der Schleife direkt zu ändern, setzen Sie $value mit &. In diesem Fall wird der Wert per Referenz zugewiesen.“

Das obige ist der detaillierte Inhalt vonWie kann ich Array-Objekte während einer zerstörungsfreien Foreach-Schleife in PHP ä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