8Fermer10
ZephLe 23/06/2008 à 12:44
$a et $b sont deux éléments de ton tableau. Ta fonction my_sort doit "dire" à uasort si ces éléments sont dans l'ordre ou pas (uasort n'en sait rien, ce n'est qu'une fonction de tri générique mais elle est incapable de comparer elle-même deux éléments dont elle ignore la structure). Si tu voulais faire par exemple une fonction qui trie un tableau de chaines par longueur, elle pourrait ressembler à ça :

function my_sort ($a, $b)
{
    return strlen ($a) < strlen ($b) ? -1 : 1;
}


Dans le cas où c'est la chaine $a qui est la plus courte, la fonction retourne -1, et uasort va considérer que les deux éléments $a et $b étaient bien triés. Par contre si la fonction retourne 1, alors uasort va inverser l'ordre de ces éléments dans ton tableau puisqu'ils n'étaient pas triés. my_sort peut effectuer n'importe quel traitement plus complexe sur $a et $b (qui peuvent être de n'importe quel types), elle ne sert qu'à indiquer si il faut les considérer comme dans l'ordre ($a < $b) ou pas ($a > $b).