Heim >Backend-Entwicklung >PHP-Tutorial >Kann ich Array-Objekte direkt innerhalb einer Foreach-Schleife ändern?

Kann ich Array-Objekte direkt innerhalb einer Foreach-Schleife ändern?

DDD
DDDOriginal
2024-12-22 04:28:14884Durchsuche

Can I Modify Array Objects Directly Within a Foreach Loop?

Ändern von Array-Werten mit einer Foreach-Schleife

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:

  1. 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.

  2. 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!

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