Array() bis

Résolu
nougitch Messages postés 431 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 17 novembre 2008 - 26 avril 2006 à 14:30
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 26 avril 2006 à 19:05
Bonjour,


Ce matin, un membre du forum m'a aidé à concevoir un tableau dans lequel je stocke le nom d'un champ (récupéré en méthode POST) ainsi que sa valeur. Ce qui me donne quelque chose comme :



Array
    [x4x2x1x1x39x0xjan] => 10,5
    [x4x2x1x1x40x0xjan] => 110
    [x4x2x2x1x41x0xjan] => 0
    [x4x2x3x1x42x0xjan] => 15.25
    etc...
)


Voici le code :



$query mysql_query("SELECT * FROM tbl_fte WHERE level 4 AND sa = 2 AND year = 2006");
while ($retrieval = mysql_fetch_array($query)) {
$ta = $retrieval_level_4['ta'];
$index = 'x4x'. $retrieval['sa'] .'x'. $retrieval['ta'] .'x'. $retrieval['bl'] .'x'. $retrieval['ia'] .'x'. $retrieval['dp'] .'xjan';
$value_index = $_POST[$index);
$array_value[$index] = $value_index;
}


Maintenant, j'aimerais que mon index soit '$ta' et que le tableau additionne automatiquement les valeurs correspondant à ce '$ta'.
Ce qui donnerait quelque chose du genre :



Array
    [1] => 1 + 2 + 3 (= 6)
    [2] => 4 + 5 + 6 (= 15)
    [3] => 7 + 8 + 9 (= 24)
)


Je ne sais comment m'y prendre.
J'ai vu sur php.net la fonction array_sum().


Je vous remercie pour votre aide.

10 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 avril 2006 à 16:15
<?php
$aTruc = array (
     'x4x2x1x1x39x0xjan' => 10.5,
     'x4x2x1x1x40x0xjan' => 110,
     'x4x2x2x1x41x0xjan' => 0,
     'x4x2x3x1x42x0xjan' => 15.25
 );




foreach ($aTruc as $clef => $val) {
 $aClef = explode ('x', $clef);
 if (isset ($aSum[$aClef[3]])) {
  $aSum[$aClef[3]] += $val;
 } else {
  $aSum[$aClef[3]] = $val;
 }
}


echo '';
print_r ($aSum);
echo '

';


?>
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 avril 2006 à 15:02
Hello,

explique toi mieux, je n'ai rien compris. Tu additionnes quoi là?
0
nougitch Messages postés 431 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 17 novembre 2008
26 avril 2006 à 15:09
Salut,

Le $index contient une valeur provenant d'un formulaire.

Tous les champs qui dont $ta = 1 s'additionnent entre eux
Tous les champs qui dont $ta = 2 s'additionnent entre eux
Tous les champs qui dont $ta = 3 s'additionnent entre eux
Etc

C'est pourquoi je souhaites stocker comme index le $ta et comme valeur, la somme des champs qui lui correspondent.

Merci.
0
nougitch Messages postés 431 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 17 novembre 2008
26 avril 2006 à 15:13
Le $index est en fait le nom.
Je récupère sa valeur dans le $value_index.
Donc au départ, j'avais ça :
Array
    [x4x2x1
x1x39x0xjan] => 10,5
    [x4x2x1
x1x40x0xjan] => 110
    [x4x2x2
x1x41x0xjan] => 0
    [x4x2x3
x1x42x0xjan] => 15.25
    etc...
)

Seulement, il me faut la somme des champs appartenant à un même $ta (ceux qui sont en gras). Ce qui donenrait :
Array
    [1] => 120,5
    [2] => 0
    [3] => 15,25
)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
26 avril 2006 à 15:40
Bonjour en fait j'ai un probleme similaire au tien d'une certaine manière...

je sais pas comment il faut faire mais j'y travaille

-------------------------------------------------------------------------------------------------------
         
Il vaut mieux poser une question et passer pour bête que le rester
toute sa vie
0
nougitch Messages postés 431 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 17 novembre 2008
26 avril 2006 à 15:44
Ah cool,
J'espère qu'on trouvera.
J'ai plus ou moins essayé avec des tableaux-multidimensionnels mais je ne suis pas encore assez à l'aise avec ça...
0
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
26 avril 2006 à 16:05
ton $ta varie de combien a combien ? et si c pas defnit et bien on fera moisn joli en code mais tout aussi fonctionnel

-------------------------------------------------------------------------------------------------------
         
Il vaut mieux poser une question et passer pour bête que le rester
toute sa vie
0
nougitch Messages postés 431 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 17 novembre 2008
26 avril 2006 à 16:20
Mon $ta est un entier qui est une clé étrangère.
Il correspond au nom du 'ta' dans une autre table que je gère dans un module d'administration.
Pour le moment, il peut être soit 1, soit 2, soit 3 mais le hic, c'est que l'administrateur pourra en ajouter ou pire, les supprimer

J'ai une idée de solution barbare. S'il le faut, on l'appliquera.
Je voudrais faire quelque chose du genre :
Je récupère ça :
[x4x2x1
x1x39x0xjan] => 10,5
[x4x2x1
x1x40x0xjan] => 110
[x4x2x2
x1x41x0xjan] => 0
[x4x2x3
x1x42x0xjan] => 15.25

Une sorte de substr, de récupérer le 3ème chiffre et de lui dire qu'il s'agit du ta.

je vais voir ça.

Et ton problème, il raconte quoi ?
0
nougitch Messages postés 431 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 17 novembre 2008
26 avril 2006 à 16:33
Malalam, merci beaucoup. Tu m'impressionnes. Ca à l'air si simple...

Teclis, merci à toi aussi.
N'hésite pas à poser ton problème.

On apprend beaucoup des problèmes des autres.

++
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 avril 2006 à 19:05
Ouais bah de rien, y avait sûrement plus propre, mais j'avais pas trop de temps.
0
Rejoignez-nous