php tutorial array sorting usort uksort sort function
Sort array
The usort() function sorts an array using a user-defined function.
*/
function cmp($a, $b) //User-defined callback function
{
if($a==$b) //If the two parameters are equal
{
Return 0; //Return 0
}
return($a>$b)?-1:1; //If the first parameter is greater than the second parameter, return 1, otherwise -1
}
$a=array(3,2,5,6,1); //Define an array
usort ($a,"cmp"); //Use a custom function to sort the array
foreach($a as $key=>$value) //Loop to output the sorted key-value pairs
{
echo "$key:$valuen";
}
/*
Note: If two elements compare identical, their order in the sorted array is undefined. Prior to PHP 4.0.6, user-defined functions would preserve the original order of these elements. But due to the new sorting algorithm introduced in 4.1.0, this will no longer be the case as there is no efficient solution for this.
*/
//Sort the array keys uksort(array,sorttype)
function cmp($a, $b) //User-defined callback function
{
if($a==$b) //If the two parameters are equal
{
Return 0; //Return 0
}
return($a>$b)?-1:1; //If the first parameter is greater than the second parameter, return 1, otherwise -1
}
$a=array(4=>"four",3 =>"three",20 =>"twenty",10=>"ten"); //Define an array
uksort ($a,"cmp"); //Use a custom function to sort the array keys
foreach($a as $key=>$value) //Loop to output the sorted key-value pairs
{
echo "$key:$valuen";
}/*
The uksort() function uses a user-defined comparison function to sort the array by key name and maintain the index relationship.
Returns true if successful, false otherwise.
This function should be used if the array to be sorted needs to be sorted by an unusual criterion.
The custom function should accept two parameters, which will be filled with a pair of key names in the array. The comparison function must return an integer less than zero, equal to zero, or greater than zero when the first argument is less than, equal to, or greater than the second argument, respectively.
*/
/*
The sort() function sorts the values of the given array in ascending order.
Note: This function assigns a new key name to the unit in the array. The original key name will be deleted.
Returns true if successful, false otherwise.
*/
$fruits=array("lemon","orange","banana","apple"); //Define an array
sort($fruits); //Sort the array
foreach($fruits as $key=>$val) //Loop to output the sorted key-value pairs of the array
{
echo "$key=$valn"; //Output key-value pair
}