Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1242 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [résolu]boucle de classement selon valeur tableau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[résolu]boucle de classement selon valeur tableau

n°1798156
stefaninho
Posté le 10-10-2008 à 10:49:25  profilanswer
 

Salut,  :hello:
 
J'ai un petit problème dans une boucle qui me compare les valeurs d'un tableau:
Si certaines valeurs sont pareil elle me stock les id dans un tableau 2d.
 

Code :
  1. $compteur1 = '0' ;
  2. $compteur2 = '1' ;
  3. $compteur3 = '0' ;
  4. $compteur4 = '0' ;
  5. for ($i=0; $i<count($array_id ); $i++) {
  6. if ($array_1[$compteur1] == $array_1[$compteur2] && $array_2[$compteur1] == $array_2[$compteur2]  && $array_3[$compteur1] == $array_3[$compteur2]) {
  7.   $array_regroup[$compteur3][$compteur4] = $array_id[$compteur1];
  8.   $compteur1 = $compteur1 + 1 ;
  9.   $compteur2 = $compteur2 + 1 ;
  10.   $compteur4 = $compteur4 + 1 ;
  11. }
  12. else {
  13.  $array_regroup[$compteur3][$compteur4] = $array_id[$compteur1];
  14.  $compteur1 = $compteur1 + 1 ;
  15.  $compteur2 = $compteur2 + 1 ;
  16.  $compteur3 = $compteur3 + 1 ;
  17. }
  18. }


 
Ce code m'affiche:

Code :
  1. 0 :
  2.       0 = 1211
  3. 1 :
  4.       0 = 1281
  5.       1 = 1179
  6. 2 :
  7.       1 = 1268
  8.       2 = 1257
  9.       3 = 1203
  10. 3 :
  11.       3 = 1222
  12.       4 = 1260
  13. 4 :
  14.       4 = 1223
  15.       5 = 1254
  16. 5 :
  17.       5 = 1151
  18. 6 :
  19.       5 = 1297
  20. 7 :
  21.       5 = 1214
  22.       6 = 1314
  23.       7 = 1140
  24.       8 = 1148
  25. 8 :
  26.       8 = 1256


Le classement est bon.
 
J'ai essayé pas mal de truc mais pas moyen de réinitialiser le compteur4 sans que certains id disparaissent ou que ça me change le classement.
 
 
Voila merci de votre aide.  [:moustik42]


Message édité par stefaninho le 10-10-2008 à 12:08:13

---------------
Et vous, quel est votre Final Fantasy préféré ?  
mood
Publicité
Posté le 10-10-2008 à 10:49:25  profilanswer
 

n°1798169
flo850
moi je
Posté le 10-10-2008 à 11:08:12  profilanswer
 

j'ai un peu de mal a voir ce que tu fais , masi un truc du genre

Code :
  1. $array_regroup=array();
  2. foreach ($i=0; $i<count($array_id ); $i++)
  3. {
  4.  if(isset($array_regroup[$array_id[$i]))
  5.     $array_regroup[$array_id[$i][] = $array_1[$i];
  6.  else
  7.     $array_regroup[$array_id[$i]  = array($array_1[$i]);
  8.  
  9. }


ne corrrespondrait il pas a la demande ?

 

$pwet[]='prout' ajoute prout au bout du tableau pwet


Message édité par flo850 le 10-10-2008 à 11:08:50

---------------

n°1798187
stefaninho
Posté le 10-10-2008 à 11:42:27  profilanswer
 

J'ai pas vraiment compris ton code  :pt1cable:  
Pour $array_regroup[$array_id[$i][] t'aurais pas oublié un crochet?
 
Sinon tu m'a fait pensé à faire:  

Code :
  1. for ($i=0; $i<count($array_id ); $i++) {
  2. if ($array_1[$compteur1] == $array_1[$compteur2] && $array_2[$compteur1] == $array_2[$compteur2]  && $array_3[$compteur1] == $array_3[$compteur2]) {
  3.    $array_regroup[$compteur3][$compteur4] = $array_id[$compteur1];
  4.    $compteur1 = $compteur1 + 1 ;
  5.    $compteur2 = $compteur2 + 1 ;
  6.    $compteur4 = $compteur4 + 1 ;
  7. }
  8. else {
  9.   $array_regroup[$compteur3][] = $array_id[$compteur1];
  10.   $compteur1 = $compteur1 + 1 ;
  11.   $compteur2 = $compteur2 + 1 ;
  12.   $compteur3 = $compteur3 + 1 ;
  13. }
  14. }


Et dans ce cas le code m'affiche:
 

Code :
  1. 0 :
  2.       0 = 1211
  3. 1 :
  4.       0 = 1281
  5.       1 = 1179
  6. 2 :
  7.       1 = 1268
  8.       2 = 1257
  9.       3 = 1203
  10. 3 :
  11.       3 = 1222
  12.       4 = 1260
  13. 4 :
  14.       4 = 1223
  15.       5 = 1254
  16. 5 :
  17.       0 = 1151
  18. 6 :
  19.       0 = 1297
  20. 7 :
  21.       5 = 1214
  22.       6 = 1314
  23.       7 = 1140
  24.       8 = 1148
  25. 8 :
  26.       0 = 1256


 
Ce qui résout une partie du problème
 
Mais en fait je veux obtenir ça:
 

Code :
  1. 0 :
  2.        0 = 1211
  3. 1 :
  4.        0 = 1281
  5. .       1 = 1179
  6. 2 :
  7.        0 = 1268
  8.        1 = 1257
  9.        2 = 1203
  10. 3 :
  11.        0 = 1222
  12.        1 = 1260
  13. 4 :
  14.        0 = 1223
  15.        1 = 1254
  16. 5 :
  17.        0 = 1151
  18. 6 :
  19.       0 = 1297
  20. 7 :
  21.        0 = 1214
  22.        1 = 1314
  23.        2 = 1140
  24.        3 = 1148
  25. 8 :
  26.        0 = 1256


 
 :??:  
 


---------------
Et vous, quel est votre Final Fantasy préféré ?  
n°1798205
stefaninho
Posté le 10-10-2008 à 12:07:45  profilanswer
 

:) C'est bon ça marche il fallait rajouter:

Code :
  1. if (!isset($array_regroup[$compteur3][0])){
  2.    $compteur4 = 0 ;
  3.   }


 
après le premier if.
 
Merci de ton aide tu m'as mis sur la bonne piste.  :jap:


---------------
Et vous, quel est votre Final Fantasy préféré ?  

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [résolu]boucle de classement selon valeur tableau

 

Sujets relatifs
changer l'affich.date et ne pas afficher valeur dans un tableau[résolu] Espaces et preg_replace
Problème d'affichage d'un menu en CSS (résolu)Remplacer des / par des - sans perdre la valeur dans le champs via SQL
[SQL] Erreur syntaxe [RESOLU][résolu] Problème de bitfields et d'alignement
Boucle sur répertoire en batchecho $row['resolu']; trouver la date d'hier ???
Plus de sujets relatifs à : [résolu]boucle de classement selon valeur tableau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR