Parameter
Sorts array elements numerically or alphanumerically.
True, if sort is successful; False, otherwise.
The member function returns the sorted array.
ArraySort(array, sortType [, sortOrder, localeSensitive ])
Or:
ArraySort(array, callback)
ColdFusion (2021 release): Made the following changes:
ColdFusion (2018 release): Made the following changes:
ColdFusion 10:
ColdFusion MX:
|
Parameter |
Description |
|---|---|
|
array |
Name of an array |
|
localeSensitive |
Specify if you wish to do a locale sensitive sorting. The default value is false. |
|
sortType |
|
|
sortOrder
|
|
|
callback |
A function which take two elements of the array, and returns whether the first is less than (-1), equal to (0) or greater than (1) the second one (similar to how compare () works for strings). |
If an array element is something other than a simple element, this function throws an ArraySortSimpleValueException error. If sort_type is numeric and an array element is not numeric, this function throws a ValueNotNumeric error.
In ColdFusion 10, added support for all Java supported locale-specific characters (including support for umlaut characters). A flag for this support has been added for sorttype = "text" or sorttype = "textnocase".
<!--- This example shows ArraySort. ---> <cfquery name = "GetEmployeeNames" datasource = "cfdocexamples"> SELECT FirstName, LastName FROM Employees </cfquery> <!--- Create an array. ---> <cfset myArray = ArrayNew(1)> <!--- Loop through the query and append these names successively to the last element. ---> <cfloop query = "GetEmployeeNames"> <cfset temp = ArrayAppend(myArray, "#FirstName# #LastName#")> </cfloop> <!--- Show the resulting array as a list. ---> <cfset myList = ArrayToList(myArray, ",")> <!--- Sort that array in descending order alphabetically. ---> <cfset isSuccessful = ArraySort(myArray, "textnocase", "desc")> ...
<cfscript>
authors = [
{firstName="Witi", lastName="Ihimaera"},
{firstName="Patricia", lastName="Grace"},
{firstName="Alan", lastName="Duff"},
{firstName="Lee", lastName="Tamahori"}, // OK: not an author
{firstName="Keri", lastName="Hulme"}
];
arraySort(
authors,
function (e1, e2){
return compare(e1.lastName, e2.lastName);
}
);
writeDump(authors);
</cfscript>
Note that the callback function does not need to be inline, as in the example; it can be any predefined user-defined function.
Output
Example using compareNoCase as callback.
<cfscript>
arrayToSort = ["d","C","b","A"];
sortedArray = arrayToSort.sort(compareNoCase);
writeDump(sortedArray)
</cfscript>
Output
Example using compare as callback.
<cfscript>
arrayToSort = ["d","C","b","A"];
sortedArray = arrayToSort.sort(compareNoCase);
writeDump(sortedArray)
</cfscript>
Output
Sign in to your account