Probleme tableaux php
adeb
-
adeb -
adeb -
Bonjour,
Je suis débutant en PHP et je dois effectuer un tableau.
Je prend les données directement d'Excel. Mon tableaux ($data) contient 2 colonnes : $exch pour le pays et $val pour la valeur.
Le problème c’est qu’il y a plusieurs valeurs pour chaque pays. Je n'arrive pas à additionner les lignes pour avoir la somme des valeurs pour chaque pays.
Merci d'avance
Voici mon code :
for($i=2; $i<count($lines); $i++)
{
$data[$exch]= array(0 /*valeur*/);
$data[$exch][0] += abs($val);
}
Je suis débutant en PHP et je dois effectuer un tableau.
Je prend les données directement d'Excel. Mon tableaux ($data) contient 2 colonnes : $exch pour le pays et $val pour la valeur.
Le problème c’est qu’il y a plusieurs valeurs pour chaque pays. Je n'arrive pas à additionner les lignes pour avoir la somme des valeurs pour chaque pays.
Merci d'avance
Voici mon code :
for($i=2; $i<count($lines); $i++)
{
$data[$exch]= array(0 /*valeur*/);
$data[$exch][0] += abs($val);
}
A voir également:
- Probleme tableaux php
- Easy php - Télécharger - Divers Web & Internet
- Tableaux croisés dynamiques - Guide
- Fusionner deux tableaux excel - Guide
- Expert php pinterest - Télécharger - Langages
- Les tableaux word - Guide
12 réponses
Bonjour,
donc si j'ais bien compris .. tu as
$data[UnCertainNombreDePays][UneValeur]
comme :
$data["france"][0]=12
$data["france"][1]=18
$data["france"][2]=25
$data["belgique"][0]=11
$data["belgique"][1]=7
et tu voudrais savoir le total de $data["france"] et le total de $data["belgique"] c'est ca ?
donc si j'ais bien compris .. tu as
$data[UnCertainNombreDePays][UneValeur]
comme :
$data["france"][0]=12
$data["france"][1]=18
$data["france"][2]=25
$data["belgique"][0]=11
$data["belgique"][1]=7
et tu voudrais savoir le total de $data["france"] et le total de $data["belgique"] c'est ca ?
Oui c'est ca mais sans l'index des pays.
En faite j'ai un tableau excel :
1 FRANCE 12
2 ITALIE 4
3 SUEDE 6
4 ITALIE 42
5 FRANCE 2
6 SUEDE 6....
que je découpe en ligne $i puis en colonne $v
for($i=2; $i<count($lines); $i++)
{
$v = explode(';', $lines[$i]);
$exch = $v[4]
$val = $v[10]
$DATA[$exch]= array(0/*valeur*/);
$DATA[$exch][0] += abs($val);
}
j'aimerais obtenir
$DATA[FRANCE][0] = 12+2
$DATA[ITALIE][0] = 4+42
...
Mais il doit manquer un index quelque part.
merci d'avance ça fait pas mal de temps que je galère la dessus
En faite j'ai un tableau excel :
1 FRANCE 12
2 ITALIE 4
3 SUEDE 6
4 ITALIE 42
5 FRANCE 2
6 SUEDE 6....
que je découpe en ligne $i puis en colonne $v
for($i=2; $i<count($lines); $i++)
{
$v = explode(';', $lines[$i]);
$exch = $v[4]
$val = $v[10]
$DATA[$exch]= array(0/*valeur*/);
$DATA[$exch][0] += abs($val);
}
j'aimerais obtenir
$DATA[FRANCE][0] = 12+2
$DATA[ITALIE][0] = 4+42
...
Mais il doit manquer un index quelque part.
merci d'avance ça fait pas mal de temps que je galère la dessus
for($i=2; $i<count($lines); $i++)
{
$v = explode(';', $lines[$i]);
$exch = $v[4]
$val = $v[10]
$DATA[$exch] += abs($val); // sans le [0]
}
{
$v = explode(';', $lines[$i]);
$exch = $v[4]
$val = $v[10]
$DATA[$exch] += abs($val); // sans le [0]
}
En faite j'ai besoin du [0] car après j'aimerais faire un tableaux avec d'autre type de valeur :
for($i=2; $i<count($lines); $i++)
{
$v = explode(';', $lines[$i]);
$exch = $v[4]
$val1 = $v[10]
$val2 = $v[11]
$DATA[$exch]= array(0/*valeur 1*/, 0/*valeur 2*/);
$DATA[$exch][0] += abs($val1);
$DATA[$exch][0] += abs($val2);
}
...
for($i=2; $i<count($lines); $i++)
{
$v = explode(';', $lines[$i]);
$exch = $v[4]
$val1 = $v[10]
$val2 = $v[11]
$DATA[$exch]= array(0/*valeur 1*/, 0/*valeur 2*/);
$DATA[$exch][0] += abs($val1);
$DATA[$exch][0] += abs($val2);
}
...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je me suis tromper dans la dernière ligne :
$DATA[$exch]= array(0/*valeur 1*/, 0/*valeur 2*/);
$DATA[$exch][0] += abs($val1);
$DATA[$exch][1] += abs($val2);
voila...si tu as une idée
$DATA[$exch]= array(0/*valeur 1*/, 0/*valeur 2*/);
$DATA[$exch][0] += abs($val1);
$DATA[$exch][1] += abs($val2);
voila...si tu as une idée
Peut etre un bug ici :
$DATA[$exch][0] += abs($val1);
$DATA[$exch][1] += abs($val2);
je pense que tu ne veux pas que $val1 et $val2 soient additionnés ensemble ??
$DATA[$exch][0] += abs($val1);
$DATA[$exch][1] += abs($val2);
je pense que tu ne veux pas que $val1 et $val2 soient additionnés ensemble ??
ok, ben ca me parrait bien :
for($i=2; $i<count($lines); $i++)
{
$v = explode(';', $lines[$i]);
$exch = $v[4]
$val1 = $v[10]
$val2 = $v[11]
$DATA[$exch]= array(0/*valeur 1*/, 0/*valeur 2*/);
$DATA[$exch][0] += abs($val1);
$DATA[$exch][1] += abs($val2);
}
c'est quoi ton bug ?
for($i=2; $i<count($lines); $i++)
{
$v = explode(';', $lines[$i]);
$exch = $v[4]
$val1 = $v[10]
$val2 = $v[11]
$DATA[$exch]= array(0/*valeur 1*/, 0/*valeur 2*/);
$DATA[$exch][0] += abs($val1);
$DATA[$exch][1] += abs($val2);
}
c'est quoi ton bug ?
Le problème c'est que j'obtiens que les premiers valeur :
1 FRANCE 12
2 ITALIE 4
3 SUEDE 6
4 ITALIE 42
5 FRANCE 2
6 SUEDE 6....
au lieu d'avoir :
$DATA[FRANCE][0] = 12+2
$DATA[ITALIE][0] = 4+42
j'ai :
$DATA[FRANCE][0] = 12
$DATA[ITALIE][0] = 4
1 FRANCE 12
2 ITALIE 4
3 SUEDE 6
4 ITALIE 42
5 FRANCE 2
6 SUEDE 6....
au lieu d'avoir :
$DATA[FRANCE][0] = 12+2
$DATA[ITALIE][0] = 4+42
j'ai :
$DATA[FRANCE][0] = 12
$DATA[ITALIE][0] = 4
essai avec
$DATA[$exch][0] = $DATA[$exch][0] + abs($val1);
$DATA[$exch][1] = $DATA[$exch][1] + abs($val2);
+= doit marché.. a moins que je me trompe de langage.. mais bon, la t'est sur qu il additionne :p
$DATA[$exch][0] = $DATA[$exch][0] + abs($val1);
$DATA[$exch][1] = $DATA[$exch][1] + abs($val2);
+= doit marché.. a moins que je me trompe de langage.. mais bon, la t'est sur qu il additionne :p
je pense qu il ne doit pas boucler alors !!
essai d'afficher ca : a la fin avant le } du for
echo "i=" .$i ."<br>";
echo "line=".$lines[$i]."<br>";
echo "exch=".$exch."<br>";
echo "val1=".$val1."Val2=".$val2."<br>";
echo $DATA[$exch][0] += abs($val1);."<br>";
echo $DATA[$exch][1] += abs($val2);."<br>";
echo "-------------------------------";
essai d'afficher ca : a la fin avant le } du for
echo "i=" .$i ."<br>";
echo "line=".$lines[$i]."<br>";
echo "exch=".$exch."<br>";
echo "val1=".$val1."Val2=".$val2."<br>";
echo $DATA[$exch][0] += abs($val1);."<br>";
echo $DATA[$exch][1] += abs($val2);."<br>";
echo "-------------------------------";