Maison > développement back-end > tutoriel php > Comment puis-je modifier des objets tableau lors d'une boucle Foreach non destructive en PHP ?

Comment puis-je modifier des objets tableau lors d'une boucle Foreach non destructive en PHP ?

Barbara Streisand
Libérer: 2024-12-15 03:20:09
original
581 Les gens l'ont consulté

How Can I Modify Array Objects During a Non-Destructive Foreach Loop in PHP?

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']);
}
Copier après la connexion

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){
Copier après la connexion

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal