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 <function>usort</function> $valor) { echo "$clave: $valor\n"; } ?> ]]> &example.outputs; Obviamente, en este caso tan trivial, la función sort sería más apropiada. Ejemplo de <function>usort</function> usando un array multidimensional ]]> Cuando se ordena un array multidimensional, $a y $b contienen referencias al primer índice del array. &example.outputs; Ejemplo de <function>usort</function> 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;