Skip to main content

sort_array

NAME

sort_array() - sort an array

SYNOPSIS

mixed *sort_array( mixed *arr, string fun, object ob,
mixed extra, ... );
mixed *sort_array( mixed *arr, function f, mixed extra, ... );
mixed *sort_array( mixed *arr, int direction );

DESCRIPTION

The first form returns an array with the same elements as 'arr', but
quicksorted in ascending order according to the rules in 'ob->fun()'.
'ob->fun()' will be passed two arguments for each call. It should
return -1, 0, or 1, depending on the relationship of the two arguments
(lesser, equal to, greater than).

The second form does the same thing but allows a function pointer to be
used instead.

For the first and second forms, any additional arguments passed after
the comparison function are forwarded to it on each call, appearing af‐
ter the two elements being compared. This is useful for threading
context (such as a lookup mapping) through to the comparator without a
closure.

The third form returns an array with the same elements as 'arr', but
quicksorted using built-in sort routines. A 'direction' of 1 or 0 will
quicksort in ascending order, while a 'direction' of -1 will quicksort
in descending order. A limitation of the built-in sort routines is
that the array must be homogeneous, composed entirely of a single type,
where that type is string, int, or float. Arrays of arrays are sorted
by sorting based on the first element, making database sorts possible.

SEE ALSO

filter(3), map(3), strcmp(3)