Maison > développement back-end > tutoriel php > Puis-je modifier des objets tableau directement dans une boucle Foreach ?

Puis-je modifier des objets tableau directement dans une boucle Foreach ?

DDD
Libérer: 2024-12-22 04:28:14
original
874 Les gens l'ont consulté

Can I Modify Array Objects Directly Within a Foreach Loop?

Modification des valeurs du tableau avec une boucle Foreach

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 :

  1. Clé Affectation :

    foreach($questions as $key => $question){
        $questions[$key]['answers'] = $answers_model->get_answers_by_question_id($question['question_id']);
    }
    Copier après la connexion

    Cette méthode préserve la clé du tableau, vous permettant de mettre à jour la valeur directement.

  2. Affectation de référence :

    foreach($questions as &$question){
        $question['answers'] = $answers_model->get_answers_by_question_id($question['question_id']);
    }
    Copier après la connexion

    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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal