(PHP 5 >= 5.2.0, PHP 7, PHP 8)
ArrayObject::uasort — Ordena los elementos con una función de usuario
Esta función ordena los elementos manteniendo su correlación con la clave asociada, utilizando una función de comparación de usuario.
Esta función se utiliza al ordenar arrays asociativos, donde el orden de los elementos es importante.
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.
callback
Retorna siempre true.
| Versión | Descripción |
|---|---|
| 8.2.0 |
El tipo de retorno es ahora true, anteriormente era bool.
|
Ejemplo #1 Ejemplo con ArrayObject::uasort()
<?php
// Función de comparación
function cmp($a, $b) {
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
// Los arrays a ordenar
$array = array('a' => 4, 'b' => 8, 'c' => -1, 'd' => -9, 'e' => 2, 'f' => 5, 'g' => 3, 'h' => -4);
$arrayObject = new ArrayObject($array);
var_dump($arrayObject);
// Ordena y muestra el array
$arrayObject->uasort('cmp');
var_dump($arrayObject);
?>El ejemplo anterior mostrará:
object(ArrayObject)#1 (1) {
["storage":"ArrayObject":private]=>
array(8) {
["a"]=>
int(4)
["b"]=>
int(8)
["c"]=>
int(-1)
["d"]=>
int(-9)
["e"]=>
int(2)
["f"]=>
int(5)
["g"]=>
int(3)
["h"]=>
int(-4)
}
}
object(ArrayObject)#1 (1) {
["storage":"ArrayObject":private]=>
array(8) {
["d"]=>
int(-9)
["h"]=>
int(-4)
["c"]=>
int(-1)
["e"]=>
int(2)
["g"]=>
int(3)
["a"]=>
int(4)
["f"]=>
int(5)
["b"]=>
int(8)
}
}