usort
Ordena un array según sus valores usando una función de comparación definida por el usuario
&reftitle.description;
boolusort
arrayarray
callbackcmp_function
Esta función ordenará un array según sus valores usando una función de comparación
definida por el usuario. Si el array que se desea ordenar necesita ser ordenado por
algún criterio no trivial, debería usar esta función.
Si dos miembros se comparan como iguales, su orden en el array ordenado es indefinido.
¬e.no-key-association;
&reftitle.parameters;
array
El array de entrada.
cmp_function
La función de comparación debe devolver un valor de tipo integer menor que, igual,
o mayor que cero si el primer argumento se considera, respectivamente,
menor que, igual, o mayor que el segundo.
&reftitle.returnvalues;
&return.success;
&reftitle.changelog;
&Version;
&Description;
4.1.0
Se introdujo un nuevo algoritmo de ordenación. La función cmp_function
no mantiene el orden original de los elementos comparadados como iguales.
&reftitle.examples;
Ejemplo de usort
$valor) {
echo "$clave: $valor\n";
}
?>
]]>
&example.outputs;
Obviamente, en este caso tan trivial, la función sort
sería más apropiada.
Ejemplo de usort usando un array multidimensional
]]>
Cuando se ordena un array multidimensional, $a y
$b contienen referencias al primer índice del array.
&example.outputs;
Ejemplo de usort usando una función miembro de un objeto
nombre = $nombre;
}
/* Ésta es la función de comparación estática: */
static function cmp_obj($a, $b)
{
$al = strtolower($a->nombre);
$bl = strtolower($b->nombre);
if ($al == $bl) {
return 0;
}
return ($al > $bl) ? +1 : -1;
}
}
$a[] = new ObjPrueba("c");
$a[] = new ObjPrueba("b");
$a[] = new ObjPrueba("d");
usort($a, array("ObjPrueba", "cmp_obj"));
foreach ($a as $elemento) {
echo $elemento->nombre . "\n";
}
?>
]]>
&example.outputs;
&reftitle.seealso;
uasort
&seealso.array.sorting;