Trier un tableau à double dimension ? - PHP - Programmation
Marsh Posté le 07-05-2007 à 11:58:41
usort.
Marsh Posté le 07-05-2007 à 13:28:17
ca fonctionne du tonnerre, merci
function compare ($a, $b)
{
if ($a["libelle"] < $b["libelle"])
return -1;
else
return 1;
}
usort($tab, "compare" );
Marsh Posté le 25-05-2007 à 16:45:18
Bonjour,
J'aimerais faire un tri par libelle, puis par date.
Comment faire ?
J'ai essayer de faire dans un premier temps, un tri par libelle :
Code :
|
puis je fais mon tri par date des enregistrements qui ont un meme libelle.
Code :
|
mais cela ne fonctionne pas
Marsh Posté le 25-05-2007 à 16:59:48
weed a écrit : mais cela ne fonctionne pas |
forcément il te manque la comparaison des libelles lorsqu'ils ne sont pas égaux
Marsh Posté le 25-05-2007 à 17:04:05
et bien si les libelles sont differents, il ne faut pas faire de tri. Je retourne donc 0 dans compare2.
Ca ne te parait pas correct comme principe ?
Marsh Posté le 25-05-2007 à 17:06:50
ha tu utilises les 2 fonctions à la suite, je n'avais pas capté...
une seule fonction 'compare' suffit
Marsh Posté le 25-05-2007 à 17:14:12
wala, une seule fonction, et tu traites tous les cas dans la même. Sinon tu tries 2 fois avec des critères différents.
Marsh Posté le 25-05-2007 à 17:20:44
Euhhh comment ca, il faut dans un premier temps trier par libelle puis une fois la première faite il faut trier par date.
mais je ne vois pas comment on peux trier en 1 seule passe.
Marsh Posté le 25-05-2007 à 17:29:52
weed a écrit : Euhhh comment ca, il faut dans un premier temps trier par libelle puis une fois la première faite il faut trier par date. mais je ne vois pas comment on peux trier en 1 seule passe. |
Tu réfléchis pas assez.
[du code faux]
Marsh Posté le 25-05-2007 à 17:35:40
(si les libellés sont identiques, ça ne veut pas dire que tes éléments sont égaux, ça veut dire que tu dois passer au critère de tri suivant.:o)
Marsh Posté le 25-05-2007 à 17:39:44
Tiens, teste ça pour voir:
Code :
|
Marsh Posté le 25-05-2007 à 17:55:25
ca a l'air de fonctionner ton 2ème code. Je vais reflechir un peu plus tard comment tu as fais.
Marsh Posté le 25-05-2007 à 18:16:22
weed a écrit : ca a l'air de fonctionner ton 2ème code. Je vais reflechir un peu plus tard comment tu as fais. |
J'ai fait exactement ce pour quoi la fonction passée à usort est faite : j'ai trié 2 éléments l'un par rapport à l'autre, en traitant tous les cas.
Marsh Posté le 07-05-2007 à 11:55:50
Comment peut on trier un tableau à double dimension en fonction d'un seul champs uniquement.
J'ai regardé la fonction array_multisort, mais malheuresement cela ne repond pas à mon besoin.
Voici un exemple pour vous montrer ce que je veux obtenir. Je veux trier mon tableau en fonction du champ libelle.
Tableau non triée :
Tableau tréi en fonction du libelle.