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 ); ?> |
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 ); ?> |
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