[PHP] valeur xml dans un tableau
Résolu
ZMEX
Messages postés
51
Statut
Membre
-
ZMEX Messages postés 51 Statut Membre -
ZMEX Messages postés 51 Statut Membre -
Bonjour,
J'ai un fichier xml comme suit :
j'arrive à récupérer les valeur des coefficients, mais je veux les multiplier par une valeur et les stocker dans un tableau mais je n'arrive pas. voilà mon code :
merci de m'aider parce que je ne trouve pas l'erreur.
J'ai un fichier xml comme suit :
<?xml version="1.0" encoding="UTF-8"?>
<coefficient>
<mois>
<titre>Janvier</titre>
<valeur>1.4</valeur>
</mois>
<mois>
<titre>Février</titre>
<valeur>1.3</valeur>
</mois>
<mois>
<titre>Mars</titre>
<valeur>1.3</valeur>
</mois>
<mois>
<titre>Avril</titre>
<valeur>1.2</valeur>
</mois>
<mois>
<titre>Mai</titre>
<valeur>1.1</valeur>
</mois>
<mois>
<titre>Juin</titre>
<valeur>0.9</valeur>
</mois>
<mois>
<titre>Juillet</titre>
<valeur>0.7</valeur>
</mois>
<mois>
<titre>Août</titre>
<valeur>0.6</valeur>
</mois>
<mois>
<titre>Septembre</titre>
<valeur>0.7</valeur>
</mois>
<mois>
<titre>Octobre</titre>
<valeur>1</valeur>
</mois>
<mois>
<titre>Novembre</titre>
<valeur>1.1</valeur>
</mois>
<mois>
<titre>Décembre</titre>
<valeur>1.2</valeur>
</mois>
</coefficient>
j'arrive à récupérer les valeur des coefficients, mais je veux les multiplier par une valeur et les stocker dans un tableau mais je n'arrive pas. voilà mon code :
// lecture du contenu des éléments
$xml = simplexml_load_file("coef.xml");
foreach ($xml->mois as $cle=>$val){
static $i=1;
$coef = 87.5;
$tab[$i]= $coef * ($val->valeur);
echo "<br>";
$i++;
}
merci de m'aider parce que je ne trouve pas l'erreur.
A voir également:
- [PHP] valeur xml dans un tableau
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Xml download - Télécharger - Édition & Programmation
- Imprimer un tableau excel - Guide
3 réponses
Bonjour,
À chaque itération de ton foreach, tu refais $i=1...
Donc, fatalement, c'est toujours la même case du tableau que tu écrases !
Par ailleurs, je ne vois pas ce que vient faire ce static ici.
Voilà ce que je te suggère :
J'ai sorti le $coef = , car c'est pas super optimisé de refaire la même opération N fois dans ta boucle. Mais ça ne change pas le résultat final.
J'ai laissé le echo "<br>"... mais il est bizarre ^^'
Xavier
À chaque itération de ton foreach, tu refais $i=1...
Donc, fatalement, c'est toujours la même case du tableau que tu écrases !
Par ailleurs, je ne vois pas ce que vient faire ce static ici.
Voilà ce que je te suggère :
// lecture du contenu des éléments
$xml = simplexml_load_file("coef.xml");
$i=1;
$coef = 87.5;
foreach ($xml->mois as $cle=>$val){
$tab[$i]= $coef * ($val->valeur);
echo "<br>";
$i++;
}
J'ai sorti le $coef = , car c'est pas super optimisé de refaire la même opération N fois dans ta boucle. Mais ça ne change pas le résultat final.
J'ai laissé le echo "<br>"... mais il est bizarre ^^'
Xavier
merci, ça marche mieux mais pas le résultat escompté.
voilà le résultat :
87.5
87.5
87.5
87.5
87.5
0
0
0
0
87.5
87.5
87.5
cela veut dire que une valeur 1.1 dans le XML, il la prend comme 1.
mais quand je met des virgule à la place des points dans mon fichier xml, là j'ai beaucoup de messages d'erreurs.
voilà le résultat :
87.5
87.5
87.5
87.5
87.5
0
0
0
0
87.5
87.5
87.5
cela veut dire que une valeur 1.1 dans le XML, il la prend comme 1.
mais quand je met des virgule à la place des points dans mon fichier xml, là j'ai beaucoup de messages d'erreurs.