Ordonner des variables sans passer par une table

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Ordonner des variables sans passer par une table

par X_a_v_i_e_r » 01 mai 2006, 02:07

Bonjour,

Je viens de penser à quelque chose encore : est-il possible de faire ceci :
- on compare les variables entre elles, on les classe dans l'ordre décroissant avec krsort()
- on récupère le nom de la variable, c'est à dire si la variable c'est $chien, on récupère "chien" pour une vérif ultérieure, au lieu d'un nombre, pour éviter que lors d'un if qui suivrait, le nombre ne puisse correspondre à la fois aux chats et aux chiens.

En gros, je voudrais transformer le nom de la variable en une chaine de caractères pouvant être utilisée par la suite, tout en sachant qu'elle a été au préalable classée en décroissant.

Vous me suivez ? Si oui, comment faire ?

Merci de votre patience

par Ryle » 29 avr. 2006, 10:19

Mettons que l'ordre soit simplement le suivant :
$var15;$var9;$var8;$var7;$var6;$var5;$var4;$var3;$var2;

Pour rapeller la deuxième par exemple, dois-je faire pour la rapeller :
$tablobis[2] ?
Toutafé ! (quoi qu'en l'occurence, cela te retournera la 3ème, l'index commençant à zéro :))
echo $tablobis[0]; // affiche la valeur de $var15
echo $tablobis[1]; // affiche la valeur de $var9
echo $tablobis[2]; // affiche la valeur de $var8
...
echo $tablobis[count($tablobis)-1]; // affiche la valeur de $var2
Pour l'autre question, si ta seconde colonne n'est pas liée à la première (vu que non triée) pourquoi vouloir la mettre dans le même tableau ? fais en un second, ca sera beaucoup plus simple à mon avis :)

par X_a_v_i_e_r » 29 avr. 2006, 00:34

Bonsoir,

Le problème c'est que je ne vois pas comment rapeller les données du tableau en fonction de leur ordre moa :oops:

Code : Tout sélectionner

$tablo = array($var2,$var3,$var4,$var5,$var6,$var7,$var8,$var9,$var15); $tablobis = rsort($tablo);
Mettons que l'ordre soit simplement le suivant :
$var15;$var9;$var8;$var7;$var6;$var5;$var4;$var3;$var2;

Pour rapeller la deuxième par exemple, dois-je faire pour la rapeller :
$tablobis[2] ?

Et sinon, est-il possible d'associer en plus une autre colonne contenant une autre information, non triée, utiliser krsort est la bonne solution ?

Merci pour votre réponse ;)

par zeus » 28 avr. 2006, 15:38

si vous voulez triez les données présentes dans un tableau PHP, il existe une série de fonction de tri sur les tableaux :
sort()
rsort()
arsort()
array_multisort()

par Vaedan » 28 avr. 2006, 15:37

Ce n'est pas très clair votre machin :?
Ce que je peux vous dire c'est soit de faire le traitement directement via MySQL : ORDER BY votre_champ DESC, soit par PHP avec rsort()

par X_a_v_i_e_r » 28 avr. 2006, 15:34

Je travaille avec lui ^^'

Nous voudrions classer les donner dans un array temporaire directement sous php, sans devoir faire plusieurs chargements de page

Je cherche justement à savoir comment trier mes données, sachant que je les veux dans le tableau en DESC ;)

Merci

par zeus » 28 avr. 2006, 15:12

Quand tu parles de table, tu veux parler de table temporaire SQL ?

Comment est-ce que tu tri tes données ?

par chris3719 » 28 avr. 2006, 15:10

salut,

imaginons que le nom de ta variable se trouve dans $t[$i]['nom_var'], tu peux recup sa valeur avec $$t[$i]['nom_var']

Ordonner des variables sans passer par une table

par Ultim4T0m » 28 avr. 2006, 15:01

Bonjour,

Je voulais savoir s'il était possible, après avoir pris des nombres provenant d'une table, de tous les comparer, et de les mettre dans un tableau, ordonné du plus grand au plus petit, sans devoir les envoyer dans une table pour cela.
Exemple : dans une première colonne, le n° d’ordre, dans la deuxième le nom de la variable

Bien sur, je compte les ré-utiliser ensuite, donc comment les rappelle-t-on une fois rangés ?

Merci d'avance ;)