Modification des valeurs de tableau dans une boucle Foreach
En PHP, vous travaillez souvent avec des tableaux d'objets et souhaitez effectuer des opérations sur chaque objet pendant une boucle foreach. Une tâche courante consiste à récupérer des données supplémentaires pour chaque objet et à mettre à jour ses propriétés.
Est-il possible de modifier des objets dans une boucle Foreach ?
Oui, vous pouvez modifier l'objet actuel dans une boucle foreach. Il existe deux approches :
1. Utilisation de la préservation de la clé du tableau :
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 le tableau $questions d'origine.
2. Utilisation de l'affectation de référence :
foreach($questions as &$question){
L'ajout de & avant $question crée une affectation de référence. Cela signifie que toutes les modifications apportées à $question dans la boucle seront reflétées dans le tableau $questions d'origine.
Quelle approche est recommandée ?
Pendant l'approche d'affectation de référence est plus concis, il est généralement recommandé d'utiliser la méthode de préservation des clés de tableau. En effet, il fournit un contrôle explicite sur les éléments du tableau qui sont modifiés.
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!