La función ArrayIterator::uasort() es una función incorporada en PHP que se usa para ordenar el elemento usando una función de comparación definida por el usuario y mantener su asociación de índice.
Sintaxis:
void ArrayIterator::uasort( callable $cmp_function )
Parámetros: Esta función acepta un único parámetro $cmp_function que es la función de comparación definida por el usuario. Esta función de comparación acepta dos parámetros que son los valores de ArrayIterator y devuelve menor, igual o mayor que cero si el primer argumento es menor, igual o mayor que cero, respectivamente.
Valor devuelto: esta función no devuelve ningún valor.
Los siguientes programas ilustran la función ArrayIterator::uasort() en PHP:
strong>Program 1:
<?php // Declare an ArrayIterator $arrItr = new ArrayIterator( array( "a" => 4, "b" => 2, "g" => 8, "d" => 6, "e" => 1, "f" => 9 ) ); // User defined comparator function function sorting($a, $b) { if($a == $b) return 0; return ($a < $b) ? -1 : 1; } $arrItr->uasort("sorting"); // Printing the sorted array. print_r($arrItr); ?>
ArrayIterator Object ( [storage:ArrayIterator:private] => Array ( [e] => 1 [b] => 2 [a] => 4 [d] => 6 [g] => 8 [f] => 9 ) )
Programa 2:
<?php // Declare an ArrayIterator $arrItr = new ArrayIterator( array( "a" => "Geeks", "b" => "for", "c" => "Geeks", "d" => "Computer", "e" => "Science", "f" => "Portal" ) ); // Declare a comparison function to sort // values in descending order function comparison($val1, $val2) { if ($val1 == $val2) { return 0; } else if($val1 > $val2) return -1; else return 1; } $arrItr->uasort('comparison'); // Print the sorted ArrayObject print_r($arrItr); ?>
ArrayIterator Object ( [storage:ArrayIterator:private] => Array ( [b] => for [e] => Science [f] => Portal [a] => Geeks => Geeks [d] => Computer ) )
Referencia: https://www.php.net/manual/en/arrayiterator.uasort.php