--- title: arrays / sort_array --- # 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)