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 fonction.
Si deux éléments sont égaux, au sens de la fonction cmp_function,
leur ordre sera indéfini.
¬e.no-key-association;
&reftitle.parameters;
array
Le tableau d'entrée.
cmp_function
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.
&reftitle.returnvalues;
&return.success;
&reftitle.changelog;
&Version;
&Description;
4.1.0
Un nouvel algorithme est introduit. Le paramètre
cmp_function ne conserve pas l'ordre
original des éléments considérés comme égaux.
&reftitle.examples;
Exemple avec usort
$value) {
echo "$key: $value\n";
}
?>
]]>
&example.outputs;
Évidemment dans ce cas trivial, sort serait plus
approprié.
Tri avec usort sur un tableau multidimensionnel
]]>
Lors du tri de tableau multidimensionnel, $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 */
static 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");
usort($a, array("TestObj", "cmp_obj"));
foreach ($a as $item) {
echo $item->name . "\n";
}
?>
]]>
&example.outputs;
&reftitle.seealso;
uasort
&seealso.array.sorting;