Heim >Backend-Entwicklung >PHP-Tutorial >Kann ich Array-Objekte direkt innerhalb einer Foreach-Schleife ändern?
Frage:
Ist es möglich, das aktuelle Objekt zu bearbeiten, das darin behandelt wird? ein foreach Schleife?
Kontext:
Sie haben ein Array von Objekten ($questions) mit zugehörigen Antworten in einer Datenbank. Sie versuchen, diese Antworten für jedes Frageobjekt während der Schleifeniteration abzurufen.
Lösung:
Sie können das aktuelle Objekt innerhalb einer foreach-Schleife ändern, indem Sie eines verwenden der folgenden Methoden:
Schlüssel Zuweisung:
foreach($questions as $key => $question){ $questions[$key]['answers'] = $answers_model->get_answers_by_question_id($question['question_id']); }
Diese Methode behält den Array-Schlüssel bei, sodass Sie den Wert direkt aktualisieren können.
Referenzzuweisung:
foreach($questions as &$question){ $question['answers'] = $answers_model->get_answers_by_question_id($question['question_id']); }
Das Hinzufügen eines kaufmännischen Und-Zeichens (&) vor dem Variablennamen übergibt den Verweis auf das Objekt und ermöglicht so direkte Änderungen innerhalb der Schleife.
Empfehlung:
Während die Referenzzuweisungsmethode prägnant ist, wird die Schlüsselzuweisungsmethode im Allgemeinen empfohlen, da sie ein vorhersehbares Verhalten gewährleistet in mehrdimensionalen Arrays.
Das obige ist der detaillierte Inhalt vonKann ich Array-Objekte direkt innerhalb einer Foreach-Schleife ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!