(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.
arrayEl array de entrada.
callbackLa 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
)