SQL PHP HTML ASP JavaScript articles and free scripts to download
 

usort: sorting by user defined function

We can sort an array in PHP by using a user defined comparison function. In the function usort we can use our own sort criteria by using one function. This way we get the flexibility to sort the array by using some non-trivial criteria. You can read many standard way of sorting the array given here.

Here is the user defined function has to have some matching requirements. One is it has to accept two variables. It should return either 0,less than 0 or greater than 0 based on the matching where first element is less than , equal to or greater than second element.

Using this now let us try to sort one array. Here the input array has some words and we will arrange the elements in the order of their length. So after the sorting the small word ( by length ) will be at the first and the longest word will to the end.

This usort function does not retain the associated index or the key of the elements of the array.

Here is the code for the above script. The output of the code is given below that.
<?
function compare($x,$y){
$x=strlen($x);
$y=strlen($y);
if($x==$y){
return 0;
}
return ($x < $y) ? -1 : 1;

}

$input = array ("Pinaple", "Orange", "Banana", "Mango", "Apple","Strawberry","aaa","bb");
while (list ($key, $val) = each ($input)) {
echo "$key -> $val <br>";
}
usort($input, "compare");
echo "<br>-----After usort---------<br>";
while (list ($key, $val) = each ($input)) {
echo "$key -> $val <br>";
}
?>
Here is the output of usort function where user defined comparisons function is used

0 -> Pinaple
1 -> Orange
2 -> Banana
3 -> Mango
4 -> Apple
5 -> Strawberry
6 -> aaa
7 -> bb

-----After usort---------
0 -> bb
1 -> aaa
2 -> Apple
3 -> Mango
4 -> Orange
5 -> Banana
6 -> Pinaple
7 -> Strawberry






Post Comment This is for short comments only. Use the forum for more discussions.
Name
Email( not to be displayed)Privacy Policy
1+2=This is to prevent automatic submission by spammers. Please enter the result of the sum as asked


Join Our Email List
Email:  
For Email Newsletters you can trust
Array Functions
PHP Sections