ArraySort

Description

Sorts array elements numerically or alphanumerically.

Return value

True, if sort is successful; False, otherwise.

Category

Array functions, List functions

Syntax

ArraySort(array, sort_type [, sort_order ]) 

History

New in ColdFusion MX: this function can throw the ArraySortSimpleValueException error and ValueNotNumeric error.

New in ColdFusion MX: in a textnocase, descending sort, this function might return elements in a different sort order than in earlier releases. If sort_type = "textnocase" and sort_order = "desc", ColdFusion MX processes elements that differ only in case differently from earlier releases, as follows:

For example, in a textnocase, desc sort of d,a,a,b,A, the following occurs:

(In a textnocase, asc sort, all ColdFusion releases return a,a,A,b,d.)

Parameters

Parameter Description
  • array
  • Name of an array
  • sort_type
  • numeric: sorts numbers
  • text: sorts text alphabetically, taking case into account (also known as case sensitive). All letters of one case precede the first letter of the other case:
  • - aabzABZ, if sort_order = "asc" (ascending sort)
  • - ZBAzbaa, if sort_order = "desc" (descending sort)
  • textnocase: sorts text alphabetically, without regard to case (also known as case-insensitive). A letter in varying cases precedes the next letter:
  • - aAaBbBzzZ, in an ascending sort; preserves original intra-letter order
  • - ZzzBbBaAa, in a descending sort; reverses original intra-letter order
  • sort_order
  • asc - ascending sort order. Default.
  • - aabzABZ or aAaBbBzzZ, depending on value of sort_type, for letters
  • - from smaller to larger, for numbers
  • desc - descending sort order.
  • - ZBAzbaa or ZzzBbBaAa, depending on value of sort_type, for letters
  • - from larger to smaller, for numbers

Throws

If an array element is 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.

Example

<!--- This example shows ArraySort --->
<cfquery name = "GetEmployeeNames" datasource = "cfsnippets">
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 descending alphabetically --->
<cfset isSuccessful = ArraySort(myArray, "textnocase", "desc")>
...

Comments