Question :
Est-il possible de modifier l'objet actuel traité dans un foreach boucle ?
Contexte :
Vous disposez d'un tableau d'objets ($questions) avec des réponses associées dans une base de données. Vous essayez de récupérer ces réponses pour chaque objet question pendant l'itération de la boucle.
Solution :
Vous pouvez modifier l'objet actuel dans une boucle foreach en utilisant un des méthodes suivantes :
Clé Affectation :
foreach($questions as $key => $question){ $questions[$key]['answers'] = $answers_model->get_answers_by_question_id($question['question_id']); }
Cette méthode préserve la clé du tableau, vous permettant de mettre à jour la valeur directement.
Affectation de référence :
foreach($questions as &$question){ $question['answers'] = $answers_model->get_answers_by_question_id($question['question_id']); }
Ajout d'une esperluette (&) avant que le nom de la variable transmette la référence à l'objet, permettant des modifications directes dans la boucle.
Recommandation :
Bien que la méthode d'attribution de référence soit concise, la méthode d'attribution de clé est généralement recommandée car elle garantit un comportement prévisible dans tableaux multidimensionnels.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!