Page 1 sur 1

Calcul de lignes spécifiques dans un tableau

Posté : 06 juin 2012, 15:10
par JulieDev
Bonjour,
je viens vous demander votre aide car je n'arrive pas à réaliser une addition de lignes dans un tableau... :oops:
Effectivement voici mon tableau (affichage après un print_r):
array(45) {
  [0]=>
  string(14) "N"
  [1]=>
  string(8) "12:00:00"
  [2]=>
  string(3) "500"
  [3]=>
  string(14) "N"
  [4]=>
  string(8) "13:00:00"
  [5]=>
  string(3) "250"
  [6]=>
  string(14) "N"
  [7]=>
  string(8) "14:00:00"
  [8]=>
  string(3) "250"
  [9]=>
  string(13) "P"
  [10]=>
  string(8) "09:00:00"
  [11]=>
  string(3) "231"
  [12]=>
  string(13) "P"
  [13]=>
  string(8) "10:00:00"
  [14]=>
  string(3) "616"
  [15]=>
  string(13) "P"
  [16]=>
  string(8) "11:00:00"
  [17]=>
  string(4) "1155"
  [18]=>
  string(13) "P"
  [19]=>
  string(8) "12:00:00"
  [20]=>
  string(4) "1078"
  [21]=>
  string(13) "P"
  [22]=>
  string(8) "13:00:00"
  [23]=>
  string(3) "693"
  [24]=>
  string(13) "P"
  [25]=>
  string(8) "14:00:00"
  [26]=>
  string(3) "616"
  }
Il fonctionne par 'trois lignes' : il y a un nom d'objet 'N' ou 'P', à cette lettre sont associés un horaire et un chiffre.
Ce que j'aimerais c'est additonner les chiffres lorsque l'horaire est le même... Par exemple les cases 2 et 20.
Je suis dessus depuis hier soir mais plus ça va plus je m'éloigne...
En vous remerciant par avance.

Re: Calcul de lignes spécifiques dans un tableau

Posté : 06 juin 2012, 15:41
par xTG
Tu peux travailler avec une boucle avec un pas de 3 :
for($i=0; $i < size($array); $i = $i +3){
  echo 'Nom : ' . $array[$i];
  echo 'Heure : ' . $array[$i+1];
  echo 'Valeur : ' . $array[$i+2];
}

Re: Calcul de lignes spécifiques dans un tableau

Posté : 06 juin 2012, 15:48
par Mazarini
<?PHP
$dernier = count($tableau) - 3; // pas sur du 3
for ($i=0;$i<$dernier;$i=$i+3) {
   $objet = $tableau[$i]; 
   $heure = $tableau[$i+1]; 
   $nombre = $tableau[$i+2];
   if (!isset($result[$objet][$heure]) {
       $result[$objet][$heure] = $nombre;
   } else {
       $result[$objet][$heure] += $nombre;
   }
}  
?>
Ca fait le cumul par objet et par heure.

Re: Calcul de lignes spécifiques dans un tableau

Posté : 06 juin 2012, 15:51
par JulieDev
Merci pour la réponse xTG.
Effectivement j'avais pensé à ça mais comment mettre ma condition dans la boucle je ne comprends pas...
for($i=0; $i < size($array); $i = $i +3){
if ($array[$i+1] == ????){
$resultat =$array[$i+2] + ????;
 }
}
Je tourne en rond...

Re: Calcul de lignes spécifiques dans un tableau

Posté : 06 juin 2012, 15:57
par JulieDev
Oh merci à tous les deux !!!!!!!
J'ai tourné autour de tout celà mais j'ai certainement fait une erreur d'étourderie à un moment donné et je m'envasais...
Le syndrome du chien qui se mord la queue :?