Ändern von Array-Werten innerhalb einer Foreach-Schleife
In PHP ist es möglich, das aktuelle Objekt zu ändern, das innerhalb einer Foreach-Schleife behandelt wird. Dazu gibt es zwei Hauptansätze:
Verwendung einer Schleifenvariablen mit Array-Schlüssel:
<?php foreach($questions as $key => $question){ $questions[$key]['answers'] = $answers_model->get_answers_by_question_id($question['question_id']); } ?>
Hier iterieren wir über das $questions-Array mit a Schleifenvariable ($key), die den Array-Index darstellt. Durch explizites Aktualisieren des $questions-Arrays am entsprechenden Index ($key) ändern wir effektiv das ursprüngliche Objekt.
Verwenden einer Referenz:
<?php foreach($questions as &$question){ $question['answers'] = $answers_model->get_answers_by_question_id($question['question_id']); } ?>
Hier In diesem Fall fügen wir vor der Schleifenvariablen ($question) ein kaufmännisches Und (&) ein, das einen Verweis auf das Objekt übergibt. Indem wir das Objekt über die Referenz ändern, aktualisieren wir das Objekt direkt im ursprünglichen $questions-Array.
Welcher Ansatz wird empfohlen?
Während beide Ansätze funktionieren, verwenden wir a Schleifenvariable mit Array-Schlüssel wird im Allgemeinen bevorzugt. Dies liegt daran, dass das ursprüngliche Array explizit aktualisiert wird, wodurch es einfacher wird, Änderungen zum Debuggen oder zur weiteren Verarbeitung zu verfolgen.
Das obige ist der detaillierte Inhalt vonSo ändern Sie Array-Werte in einer PHP-Foreach-Schleife: Referenz oder Schlüssel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!