Itération de boucle non destructive avec des valeurs d'objet modifiées
Lors d'une itération dans un tableau à l'aide d'une boucle foreach, il peut être souhaitable de modifier le objet actuel géré dans la boucle. Ceci peut être réalisé en utilisant deux approches.
Approche 1 : Utilisation de la préservation des clés de tableau
Pour conserver la clé de l'objet actuel, utilisez la syntaxe suivante :
foreach($questions as $key => $question){ $questions[$key]['answers'] = $answers_model->get_answers_by_question_id($question['question_id']); }
Ici, la clé ($key) est enregistrée et utilisée pour mettre à jour la valeur correspondante dans les $questions principales variable.
Approche 2 : Utilisation de l'affectation de référence
Alternativement, l'ajout du & à la valeur de la boucle foreach mettra directement à jour la variable $questions :
foreach($questions as &$question){
Cette approche modifie la valeur par référence, en gardant le tableau $questions à jour. Cependant, la première approche est généralement recommandée.
Note de documentation PHP :
Selon la documentation PHP foreach :
"Afin de pouvoir pour modifier directement les éléments du tableau dans la boucle, faites précéder $value de &. Dans ce cas, la valeur sera attribuée par référence."
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!