[PHP] Problème avec la fonction rsort

Bonjour,

Dans un code php j'ai créé 4 tableaux : $ref_art, $titre, $auteur_art et $nb_com .
Je classe le tableau $nb_com avec rsort, ce qui fonctionne bien.
Voilà l'extrait du code en question :

rsort($nb_com);
$i = 0;
$j = 1;
while (list($cle,$val) = each ($nb_com)) {
echo "<tr><td><b>$j </b><i><a

href='$ref_art[$cle]'>".$titre[$cle]."</a></i>

de <B> $auteur_art[$cle]</B> : </td><td> --->

<b> $nb_com[$cle] </b> commentaires</td></tr>";
if ($i > 9) {
break;
}
$i++;
$j++;
}

Mais les indices $cle des trois autres tableaux ne coïncident pas avec celui du tableau $nb_com !
Pour être plus clair voici un exemple :
au début de la boucle while les trois tableaux on pour indice 0 alors que le tableau $nb_com a pour indice 238 (la valeur pour laquelle le tableau prend la plus grande valeur).

Où est le problème s'il vous plait ?

3 réponses

  1. J'ai compris d'où vient l'erreur : la fonction rsort réindice le tableau de sa plus grande à sa plus petite valeur. Les indices des autres tableaux ne peuvent donc plus coïncider...
    Alors comment faire ? Avec un tableau multidimensionnel ?
    1. Eh fait j'ai réglé le pb avec deux boucles for

      $nb_com[] = $nbcom;
      }
      $max = -1;
      for ($i = 1; $i < 16; ++$i)
      {
      for ($k = 0; $k < 2000; ++$k) {
      if ($nb_com[$k] > $max) {
      $max = $nb_com[$k] ;
      $ind_max = $k;
      }
      }
      $max = -1;
      echo "<tr><td><b>$i </b><i><a href='$ref_art[$ind_max]'>".$titre[$ind_max]."</a></i> de <B> $auteur_art[$ind_max]</B> : </td><td> <b> $nb_com[$ind_max] </b> com</td></tr>";
      $nb_com[$ind_max] = 0;


      Mais je trouve ce code pas propre et couteux en mémoire. J'avais pensé à un tableau multidimensionnel mais m'en suis pas sorti. Quant à krsort j'ai pas bien pigé comment utilisé cette fonction...
      Merci de m'avoir répondu en tout cas.
      Et puis ce que je voulais marche : c'est déjà pas si mal...