Je voudrais trier par prix et aussi sur plusieurs colonnes.
j'ai tester avec array_multisort mais je ne m'en sort pas.
Si tes données viennent d'une base SQL, il serait plus efficace de lui laisser faire le travail.
Sinon, il y a un example de ce que tu veux dans la doc de array_multisort. En supposant que ton tableau de départ s'appelle '$annonces', et que tu veuilles trier par prix ascendant, date descendante, le code suivant devrait être dans l'idée:
Je voudrais trier par prix et aussi sur plusieurs colonnes.
j'ai tester avec array_multisort mais je ne m'en sort pas.
Si tes données viennent d'une base SQL, il serait plus efficace de lui
laisser faire le travail.
Sinon, il y a un example de ce que tu veux dans la doc de
array_multisort. En supposant que ton tableau de départ s'appelle
'$annonces', et que tu veuilles trier par prix ascendant, date
descendante, le code suivant devrait être dans l'idée:
Je voudrais trier par prix et aussi sur plusieurs colonnes.
j'ai tester avec array_multisort mais je ne m'en sort pas.
Si tes données viennent d'une base SQL, il serait plus efficace de lui laisser faire le travail.
Sinon, il y a un example de ce que tu veux dans la doc de array_multisort. En supposant que ton tableau de départ s'appelle '$annonces', et que tu veuilles trier par prix ascendant, date descendante, le code suivant devrait être dans l'idée:
Je voudrais trier par prix et aussi sur plusieurs colonnes.
Un truc comme ceci devrait marcher (non testé) :
function compare($a, $b) { if ($a['prix'] != $b['prix']) { /* Les prix sont différents, ce critère suffit */ return $a['prix'] - $b['prix']; } /* les prix sont égaux, on trie sur l'id (par exemple) */ return $a['id'] - $b['id']; } usort ($tableau, "compare");
http://fr2.php.net/manual/fr/function.usort.php
j'ai tester avec array_multisort mais je ne m'en sort pas.
Ce n'est visiblement pas fait pour ça. D'après ce que j'en comprends de la doc, la fonction array_multisort sert quand les critères de tri sont dans des tableaux différents (mais de même longueur).
Je voudrais trier par prix et aussi sur plusieurs colonnes.
Un truc comme ceci devrait marcher (non testé) :
function compare($a, $b)
{
if ($a['prix'] != $b['prix']) {
/* Les prix sont différents, ce critère suffit */
return $a['prix'] - $b['prix'];
}
/* les prix sont égaux, on trie sur l'id (par exemple) */
return $a['id'] - $b['id'];
}
usort ($tableau, "compare");
http://fr2.php.net/manual/fr/function.usort.php
j'ai tester avec array_multisort mais je ne m'en sort pas.
Ce n'est visiblement pas fait pour ça. D'après ce que j'en comprends de
la doc, la fonction array_multisort sert quand les critères de tri sont
dans des tableaux différents (mais de même longueur).
Je voudrais trier par prix et aussi sur plusieurs colonnes.
Un truc comme ceci devrait marcher (non testé) :
function compare($a, $b) { if ($a['prix'] != $b['prix']) { /* Les prix sont différents, ce critère suffit */ return $a['prix'] - $b['prix']; } /* les prix sont égaux, on trie sur l'id (par exemple) */ return $a['id'] - $b['id']; } usort ($tableau, "compare");
http://fr2.php.net/manual/fr/function.usort.php
j'ai tester avec array_multisort mais je ne m'en sort pas.
Ce n'est visiblement pas fait pour ça. D'après ce que j'en comprends de la doc, la fonction array_multisort sert quand les critères de tri sont dans des tableaux différents (mais de même longueur).
Olivier Miakinen
Le 17/01/2008 00:50, Bruno Desthuilliers répondait à Y a personne :
Si tes données viennent d'une base SQL, il serait plus efficace de lui laisser faire le travail.
Ah, je voulais le dire aussi dans ma réponse, mais j'ai oublié de le faire avant de cliquer sur Envoi. Merci de l'avoir fait.
Le 17/01/2008 00:50, Bruno Desthuilliers répondait à Y a personne :
Si tes données viennent d'une base SQL, il serait plus efficace de lui
laisser faire le travail.
Ah, je voulais le dire aussi dans ma réponse, mais j'ai oublié de le
faire avant de cliquer sur Envoi. Merci de l'avoir fait.