[PHP] Problème avec la fonction rsort
misterned2
Messages postés
19
Date d'inscription
Statut
Membre
Dernière intervention
-
misterned2 Messages postés 19 Date d'inscription Statut Membre Dernière intervention -
misterned2 Messages postés 19 Date d'inscription Statut Membre Dernière intervention -
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 ?
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 ?
A voir également:
- [PHP] Problème avec la fonction rsort
- Fonction si et - Guide
- Easy php - Télécharger - Divers Web & Internet
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Expert php pinterest - Télécharger - Langages
3 réponses
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 ?
Alors comment faire ? Avec un tableau multidimensionnel ?
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...
$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...