Afficher indice classement tableau array()

Répondre
Sammuel
le 26/02/2007 à 17:24
Sammuel
Salut !

Je me casse la tete sur un truc tout bete...

J'ai ce genre de tableau :
Array
(
[0] => Array
(
[0] => Lyon
[1] => 58
)

[1] => Array
(
[0] => Lens
[1] => 45
)


et via cette fonction :
function afficher_tableau($tableau){
foreach($tableau as $cle=>$valeur){
if(is_array($valeur)){
echo '<tr>
';
afficher_tableau($valeur);
echo '</tr>
';
}
else{
echo '<td>'.$valeur.'</td>
';
}
}
$tableau = NULL; // je sais pas si ca sert a quelque chose, c'est juste pour vider le tableau une fois affiché ^^
}


J'obtiens ce classement :
Lyon 58
Lens 45

Comment faire pour afficher l'indice de classement pour chaque équipe ?? Exemple :
1 Lyon 58
2 Lens 45

La fonction actuelle affiche les données par ligne, ce qui complique la chose. J'ai essayé tout un tas de truc, mais je n'y arrive pas.

Si vous auriez une idée pour afficher le rang/classemement à coté du nom de chaque équipe, ce serait excellent smiley

Merci !
jocker
le 26/02/2007 à 18:17
jocker
déjà à mon avis il y a peut être qqch à améliorer au niveau de l'appel de la fonction. Je ne sais pas trop comment tu l'utilises.

Ensuite voici la piste vers laquelle je m'orienterai. triez les tableaux sur les valeurs de $tab[equipe][1] et apres tu listes dans l'ordre avec simplement une boucle $i++ et tu affiches $i

Pour avoi rle classement de toute façon t'es obligé de trier par le nb de points.

Voilà j'espère que ca t'a donné une idée vers où chercher.

Sinon tu pourrais nous montrer comment tu appelles ta fct.

Merci @++
Sammuel
le 26/02/2007 à 18:35
Sammuel
Je l'appelle comme ca :
<?php
echo '<table">
<tr>
<th>Equipes</th>
<th>Points</th>
</tr>
';
afficher_tableau($general);
echo '</table>
';
?>


Sinon, je me sers d'une fonction pour classer le tableau par points et par différence de but. Elle remet de l'ordre dans le tableau précédent, en classant tous les sous tableaux par points, puis différence de buts.

Et ensuite j'utilise la fonction afficher_tableau pour retourner le bon classement.

La, je montre que 2 colonnes pour l'exemple, mais il y en a 22 par équipe en tout :

Array
(
[0] => Array
(
[0] => Lyon
[1] => 58
[2] => 26
[3] => 18
[4] => 4
[5] => 4
[6] => 47
[7] => 21
[8] => 26
[9] => 28
[10] => 13
[11] => 8
[12] => 4
[13] => 1
[14] => 22
[15] => 11
[16] => 30
[17] => 13
[18] => 10
[19] => 0
[20] => 3
[21] => 25
[22] => 10
)

[1] => Array
(
[0] => Lens
[1] => 45
[2] => 26
[3] => 12
[4] => 9
[5] => 5
[6] => 40
[7] => 29
[8] => 11
[9] => 27
[10] => 14
[11] => 7
[12] => 6
[13] => 1
[14] => 22
[15] => 13
[16] => 18
[17] => 12
[18] => 5
[19] => 3
[20] => 4
[21] => 18
[22] => 16
)
jocker
le 26/02/2007 à 20:53
jocker
ah je croyais l'indice 1 c'était le nombre de points

en fait je vois pas ce qui bloque alors parce que tu dis que tu a une fonction avant qui trie par ordre donc ca veut dire que tu peux faire ta boucle et afficher le $i++ ca devrait marcher.

Mais j'ai peur de pas bien comprendre le problème là désolé

++
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours