(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, mantienen su orden original. Anterior a PHP 8.0.0, su orden relativo en el array ordenado no está definido.
Nota:
Reinicia el puntero interno del array al primer elemento.
arrayEl array de entrada.
callbackLa función de comparación debe retornar un entero menor que, igual a, o mayor que 0 si el primer argumento es considerado, respectivamente, menor que, igual a, o mayor que el segundo.
Retorna siempre true.
| Versión | Descripción |
|---|---|
| 8.2.0 |
El tipo de retorno es ahora true, anteriormente era bool.
|
| 8.0.0 |
Si callback espera un parámetro a ser pasado por
referencia, esta función emite ahora una 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 ejemplo anterior mostrará :
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
)