Snippet Name: Quickly sort associative arrays
Description: A "quick sort" function for associative arrays.
Also see: » Pre-populated List of Countries
» Array of all US states
» Search array elements for a substring
» Create a drop down menu from an array ...
» Unset unkown array element
» Parse RSS into array
» Recursively traverse array
» Combining three arrays into one
» Combining two arrays into one
» Check if array is associative
» Unique Array function
» Pick Randomly from Array
» HEX to RGB array
» Filter Empty Array Elements
Comment: (none)
Language: PHP
Highlight Mode: PHP
Last Modified: March 16th, 2009
|
<?PHP
FUNCTION qsort($a,$f) {
qsort_do(&$a,0,COUNT($a)-1,$f);
}
FUNCTION qsort_do($a,$l,$r,$f) {
IF ($l < $r) {
qsort_partition(&$a,$l,$r,&$lp,&$rp,$f);
qsort_do(&$a,$l,$lp,$f);
qsort_do(&$a,$rp,$r,$f);
}
}
FUNCTION qsort_partition($a,$l,$r,$lp,$rp,$f) {
$i = $l+1;
$j = $l+1;
WHILE ($j <= $r) {
IF ($f($a[$j],$a[$l])) {
$tmp = $a[$j];
$a[$j] = $a[$i];
$a[$i] = $tmp;
$i++;
}
$j++;
}
$x = $a[$l];
$a[$l] = $a[$i-1];
$a[$i-1] = $x;
$lp = $i - 2;
$rp = $i;
}
?> |