Modifier array dans un foreach en PHP
Résolu
mariostar27
Messages postés
391
Date d'inscription
Statut
Membre
Dernière intervention
-
lemilas -
lemilas -
Bonjour,
voici mon problème. j'ai un array de forme :
J'aimerai modifier se tableau dans une boucle foreach. le soucis, c'est que rien ne change. voici ce que j'obtiens :
j'obtiens le résultat suivant :
Pourquoi les valeurs n'ont t-elle pas été changé dans la seconde boucle foreach ???
merci d'avance pour votre aide.
gwennael
voici mon problème. j'ai un array de forme :
array 93 => array 'ID' => string '93' (length=2) 'CODE' => string 'CFH' (length=3) 'ANNEESCOLAIRE' => string '2010' (length=4) 'UNITE' => string 'Heure' (length=5) 'LIBELE' => string 'Cours Formation Humaine' (length=23) 'VISIBLE' => string '0' (length=1) 'SAISISSABLE' => int 1 11 => array 'ID' => string '11' (length=2) 'CODE' => string 'CL' (length=2) 'ANNEESCOLAIRE' => string '2010' (length=4) 'UNITE' => string 'Heure' (length=5) 'LIBELE' => string 'Cours de langue' (length=15) 'VISIBLE' => string '0' (length=1) 'SAISISSABLE' => int 1
J'aimerai modifier se tableau dans une boucle foreach. le soucis, c'est que rien ne change. voici ce que j'obtiens :
foreach ($A_tableauNatureActivite as $key => $nature){ $nature['SAISISSABLE'] = 0; echo $nature['CODE']." = ".$nature['SAISISSABLE']."<br/>"; } echo "### MAINTENANT ###<br/>"; foreach ($A_tableauNatureActivite as $key => $nature){ echo $nature['CODE']." = ".$nature['SAISISSABLE']."<br/>"; }
j'obtiens le résultat suivant :
CFH = 0 CL = 0 ### MAINTENANT ### CFH = 1 CL = 1
Pourquoi les valeurs n'ont t-elle pas été changé dans la seconde boucle foreach ???
merci d'avance pour votre aide.
gwennael
A voir également:
- Modifier array dans un foreach en PHP
- Modifier dns - Guide
- Modifier liste déroulante excel - Guide
- Modifier story facebook - Guide
- Modifier l'extension d'un fichier - Guide
- Modifier sa voix en direct - Guide
4 réponses
Bonsoir
Pas d'accord avec mpmp93
Si ça ne marche pas, c'est parce que tu modifies la variable $nature, qui est une copie d'un élément du tableau, mais pas le tableau lui même.
Note que depuis PHP5 si tu l'as, tu peux aussi modifier le tableau à travers la variable $nature à condition de l'avoir passée par référence ( note le & devant $nature dans le foreach)
Pas d'accord avec mpmp93
Si ça ne marche pas, c'est parce que tu modifies la variable $nature, qui est une copie d'un élément du tableau, mais pas le tableau lui même.
foreach ($A_tableauNatureActivite as $key => $nature){ $A_tableauNatureActivite[$key]['SAISISSABLE'] = 0; // ça, ça modifie bien le tableau }
Note que depuis PHP5 si tu l'as, tu peux aussi modifier le tableau à travers la variable $nature à condition de l'avoir passée par référence ( note le & devant $nature dans le foreach)
foreach ($A_tableauNatureActivite as $key => &$nature){ $nature['SAISISSABLE'] = 0; // ça aussi, ça modifie bien le tableau en PHP5 }
Bonsoir,
Le problème est que vous avez des tableaux dans un tableau.
Code qui irait bien:
ai pas testé, mais c'est ce que je verrai bien...
Sinon:
A+
Le problème est que vous avez des tableaux dans un tableau.
array 93 => array 'ID' => string '93' (length=2) 'CODE' =>....etc....
Code qui irait bien:
foreach ($A_tableauNatureActivite as $key => $val){ foreach($val AS $key2 => $nature) $nature['SAISISSABLE'] = 0; echo $nature['CODE']." = ".$nature['SAISISSABLE']."<br/>"; } }
ai pas testé, mais c'est ce que je verrai bien...
Sinon:
foreach ($A_tableauNatureActivite as $key => $nature){ $nature[$key]['SAISISSABLE'] = 0; echo $nature['CODE']." = ".$nature['SAISISSABLE']."<br/>"; }
A+