usort
Trie un tableau en utilisant une fonction de comparaison
&reftitle.description;
boolusort
arrayarray
callbackcmp_function
usort va trier le tableau array
avec ses valeurs, en utilisant une fonction
définie par l'utilisateur. Si un tableau doit être trié
avec un critère complexe, il est préférable d'utiliser
cette méthode.
La fonction de comparaison cmp_function doit retourner un entier,
qui sera inférieur, égal ou supérieur à zéro
suivant que le premier argument est considéré comme plus petit,
égal ou plus grand que le second argument. Si les deux arguments sont
égaux, leur ordre est indéfini.
Si deux éléments sont égaux, au sens de la fonction cmp_function,
leur ordre sera indéfini. Jusqu'en &php; 4.0.6, la fonction de tri
leur conserverait leur ordre original, mais le nouvel algorithme introduit
en &php; 4.1.0 fait que ce n'est plus le cas, car cela serait trop
coûteux.
&return.success;
Exemple avec usort
$b) ? -1 : 1;
}
$a = array (3, 2, 5, 6, 1);
usort ($a, "compare");
while (list ($key, $value) = each ($a)) {
echo "$key: $value\n";
}
?>
]]>
&example.outputs;
Evidemment dans ce cas trivial, rsort serait plus
approprié.
Tri avec usort sur un tableau multi-dimensionnel
]]>
Lors du tri de tableau multi-dimensionnel, $a et
$b contiennent des références sur le premier
élément du tableau.
&example.outputs;
Tri avec usort sur un objet
name = $name;
}
/* Ceci est une fonction de comparaison statique */
function cmp_obj($a, $b)
{
$al = strtolower($a->name);
$bl = strtolower($b->name);
if ($al == $bl) {
return 0;
}
return ($al > $bl) ? +1 : -1;
}
}
$a[] = new TestObj("c");
$a[] = new TestObj("b");
$a[] = new TestObj("d");
uasort($a, array ("TestObj", "cmp_obj"));
foreach ($a as $item) {
echo $item->name."\n";
}
?>
]]>
&example.outputs;
Voir aussi
uasort,
uksort,
sort,
asort,
arsort,
ksort,
natsort et
rsort.