Maison >développement back-end >tutoriel php >Pourquoi la modification des valeurs de tableau dans une boucle Foreach ne fonctionne-t-elle pas et comment puis-je y remédier ?
Modification des valeurs de tableau avec des boucles Foreach
Dans votre code, vous utilisez une boucle foreach pour parcourir le $bizaddarray et modifier chacun valeur à l’aide des fonctions strip_tags, ucwords et strtolower. Cependant, il semble que les balises HTML soient toujours présentes lorsque vous convertirez ultérieurement le tableau en chaîne. En effet, les boucles foreach créent par défaut une copie des éléments du tableau, de sorte que toutes les modifications que vous apportez à ces copies ne sont pas reflétées dans le tableau d'origine.
Modification directe des valeurs
Pour rendre les modifications permanentes, vous devez modifier directement les valeurs du tableau d'origine. Il existe deux façons d'y parvenir :
Méthode 1 : Utilisation de la référence mémoire
Cette méthode consiste à utiliser l'opérateur & pour obtenir une référence à la valeur d'origine du tableau. Toute modification que vous apportez via cette référence modifiera directement l'élément correspondant dans le tableau d'origine.
foreach ($bizaddarray as &$value) { $value = strip_tags(ucwords(strtolower($value))); } unset($value); // Remove the reference to prevent unintended modifications
Méthode 2 : Utilisation du tableau source
Cette méthode implique d'accéder au élément de tableau source à l’aide de la variable $key. Toute modification que vous apportez via cet élément mettra également à jour le tableau d'origine.
foreach ($bizaddarray as $key => $value) { $bizaddarray[$key] = strip_tags(ucwords(strtolower($value))); }
En utilisant l'une ou l'autre de ces méthodes, les balises HTML doivent être définitivement supprimées des valeurs de votre tableau et elles seront reflétées dans la chaîne. conversion.
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!