(PHP 4, PHP 5, PHP 7, PHP 8)
uasort — Ordena un array utilizando una función de retrollamada
Ordena array
en el lugar de tal manera que la
correlación entre las claves y los valores sea conservada,
utilizando una función de comparación definida por el usuario.
Utilizado habitualmente al ordenar arrays asociativos donde el orden actual de los elementos es significativo.
Nota:
Si dos miembros se comparan como iguales, ellos mantendrán su orden original. Antes de PHP 8.0.0, su orden relativo en un array ordenado era indefinido.
Nota:
Reinicia el puntero interno del array al primer elemento.
array
El array de entrada.
callback
La función de comparación debe devolver un entero menor, igual o mayor que cero si el primer argumento se considera que sea respectivamente menor, igual o mayor que el segundo. Observe que antes de PHP 7.0.0 este entero debía estar en el rango de -2147483648 a 2147483647.
Siempre devuelve true
.
Versión | Descripción |
---|---|
8.2.0 |
The return type is true now; previously, it was bool.
|
8.0.0 |
Si callback espera que se pase un parámetro
por referencia, esta función ahora emitirá un E_WARNING .
|
Ejemplo #1 Ejemplo con uasort()
<?php
// Función de comparación
function cmp($a, $b) {
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
// Array a ordenar
$array = array('a' => 4, 'b' => 8, 'c' => -1, 'd' => -9, 'e' => 2, 'f' => 5, 'g' => 3, 'h' => -4);
print_r($array);
// Ordena y muestra el array resultante
uasort($array, 'cmp');
print_r($array);
?>
El resultado del ejemplo sería:
Array ( [a] => 4 [b] => 8 [c] => -1 [d] => -9 [e] => 2 [f] => 5 [g] => 3 [h] => -4 ) Array ( [d] => -9 [h] => -4 [c] => -1 [e] => 2 [g] => 3 [a] => 4 [f] => 5 [b] => 8 )