Heim >Backend-Entwicklung >PHP-Tutorial >So ändern Sie Array-Werte in einer PHP-Foreach-Schleife: Referenz oder Schlüssel?

So ändern Sie Array-Werte in einer PHP-Foreach-Schleife: Referenz oder Schlüssel?

Linda Hamilton
Linda HamiltonOriginal
2024-12-12 17:29:10134Durchsuche

How to Modify Array Values in a PHP Foreach Loop: Reference or Key?

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

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