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!