Recipe 4.20 Sorting an Array Using a Method Instead of a Function
4.20.1 Problem
You want to define
a custom sorting routine to order an array. However, instead of using
a function, you want to use an
object method.
4.20.2 Solution
Pass in an array holding a class name and method in place of the
function name:
usort($access_times, array('dates', 'compare'));
4.20.3 Discussion
As with a custom sort function, the object method needs to take two
input arguments and return 1, 0, or -1, depending if the first
parameter is larger than, equal to, or less than the second:
class pc_sort {
// reverse-order string comparison
function strrcmp($a, $b) {
return strcmp($b, $a);
}
}
usort($words, array('pc_sort', 'strrcmp'));
4.20.4 See Also
Chapter 7 for more on classes and objects; Recipe 4.18 for more on custom sorting of arrays.
|