Array dans un for

Résolu
Melooo Messages postés 1405 Date d'inscription   Statut Membre Dernière intervention   -  
Melooo Messages postés 1405 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je dois compter le nombre de connexion d'un client par mois.
Mais il y a des mois ou par exemple, il ne c'est pas connecté, donc le nombre de connexion sera à 0.
Mon tableau est construit comme ca :
Array
(
    [80] => Array
        (
            [10] => 0
            [9] => 25
        )

    [81] => Array
        (
            [1] => 222
            [12] => 125
            [10] => 48
        )

    [82] => Array
        (
            [4] => 41
            [12] => 58
        )

)

[80] = correspond à l'ID client
[10] et [9] = correspond au mois de l'année => nombre de connexion
Ce que je souhaite faire c'est d'ajouter 0 pour les mois auxquels il ne s'est pas connecté.
J'ai tenté ceci :
foreach($totMed as $cle1 => $valeur1){
	foreach ($valeur1 as $cle2=>$valeur2){
		for($v=1;$v<=12;$v++){
			if($v != $cle2){
				$essai[$cle2] = $v;		
			} else {
				$essai[$cle2] = $cle2;
			}
		}			
	}		
}

Mais sans succès.
Merci de votre aide.
A voir également:

3 réponses

le père
 
Bonjour

Pas essayé, mais ça devrait marcher :

foreach($totMed as $cle1 => $valeur1){  
  for ($k=1; $k<=12; $k++) {  
    if (!isset($totMed[$cle1][$k]))  $totMed[$cle1][$k]=0;  
  }  
}
0
Melooo Messages postés 1405 Date d'inscription   Statut Membre Dernière intervention   84
 
Merci le père, cela fonctionne.
Autre petit souci, actuellement mon tableau html est construit comme ceci :
Code | Nom | Nbr depuis le début | Nbr annee en cours | Janv | Fév | Mars | Avril ..... | Déc

Et l'affichage de mes données se fait comme ceci :
<?php foreach($webRow as $value){ 
			?><tr>
				<td><?php echo  $value[1]; ?></td>
				<td><?php echo $value[0]; ?></td>
				<td><?php echo $value[2]; ?></td>
				<td><?php echo $value[4]; ?></td><?php
			}
?><tr><?php
			foreach($totMed as $my_value){ 
						foreach ($my_value as $cle2=>$valeur2){
				?><td><?php echo $valeur2; ?></td><<?php
			} } 
				 	?>
			</tr>

Comment peut-on faire pour aller à la ligne pour chaque client ?
Merci encore de ton aide le père
0
le père
 
Est-ce qu'il doit y avoir plusieurs lignes pour chacun de tes $webRow ?
Je suppose qu'en fait, chaque ligne de $totMed correspond à une seule ligne $webRow et tu ne devrais donc pas avoir une boucle sur $totMed pour chacun de tes webRow. Mais comme j'ignore quelle relation il y a entre les deux, je ne peux pas te dire quoi corriger exactement.
0
Melooo Messages postés 1405 Date d'inscription   Statut Membre Dernière intervention   84
 
Mon webRow correspond au numéro, au nom, nbr depuis le début, nbr annee en cours.
Et oui en effet il y a plusieurs lignes pour mes webRow. (une ligne par client)
et vous avez tout compris, je dois avoir une ligne de totMed (les mois de l'année) pour chaque valeur de webRow.
0
le père
 
Je ne suis pas vraiment sûr d'avoir compris...
si le code dans $value[1] correpond bien à la clé qu'il y a dans $totMed, ça devrait donner :

<?php foreach($webRow as $value){ ?> 
  <tr>
    <td><?php echo $value[1]; ?></td>
    <td><?php echo $value[0]; ?></td>
    <td><?php echo $value[2]; ?></td>
    <td><?php echo $value[4]; ?></td><?php 
			for($k=1;$k<=12;$k++) { ?>
    <td><?php echo $totMed[$value[1]][$k] ?></td><?php } ?>
  </tr><?php } ?>


À nom humble avis, il vaudrait mieux initialiser les valeurs inexistantes avec & nbsp; (sans espace entre & et nbsp;)plutôt que 0, car un tableau presque plein de zéros est pénible à lire
0
Melooo Messages postés 1405 Date d'inscription   Statut Membre Dernière intervention   84
 
Vu comme ca, c'est beaucoup plus propre, et surtout ca fonctionne !!!
Oui je viens de voir que mon tableau avec les 0 donne mal à la tête je vais donc essayer de le remplir soit avec du vide soit avec un -
Merci beaucoup de votre aide le père !!
0