The ArrayIterator::uksort() function is an inbuilt function in PHP which is used to sort the keys by using a user-defined comparison function.
Syntax:
void ArrayIterator::uksort( callable $cmp_function )
Parameters: This function accepts single parameter $cmp_function which holds the user defined comparison function.
Return Value: This function does not return any value.
Below programs illustrate the ArrayIterator::uksort() function in PHP:
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 ->uksort( "sorting" );
// Printing the sorted array. print_r( $arrItr );
?> |
Output:
ArrayIterator Object ( [storage:ArrayIterator:private] => Array ( [a] => 4 [b] => 2 [d] => 6 [e] => 1 [f] => 9 [g] => 8 ) )
Program 2:
<?php // Declare an ArrayIterator $arrItr = new ArrayIterator(
array (
"b" => "for" ,
"a" => "Geeks" ,
"e" => "Science" ,
"c" => "Geeks" ,
"f" => "Portal" ,
"d" => "Computer"
)
); // 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 ->uksort( 'comparison' );
// Print the sorted ArrayObject print_r( $arrItr );
?> |
Output:
ArrayIterator Object ( [storage:ArrayIterator:private] => Array ( [f] => Portal [e] => Science [d] => Computer => Geeks [b] => for [a] => Geeks ) )
Reference: https://www.php.net/manual/en/arrayiterator.uksort.php