Sorts list elements according to a sort type and sort order.
ListSort(list, sort_type [, sort_order] [, delimiters ])
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. ColdFusion MX outputs the elements in the reverse of the ascending order. Earlier releases do not change order of elements that differ only in case. Both operations are correct. The new operation ensures that an ascending and descending sort output elements in exactly reverse order.
For example, in a textnocase
, desc
sort of d,a,a,b,A
, the following occurs:
d,b,A,a,a
d,b,a,a,A
(In a textnocase
, asc sort, all ColdFusion releases return a,a,A,b,d
.)
ColdFusion ignores empty list elements; thus, the list "a,b,c,,,d" has four elements.
<h3>ListSort Example</h3> <!--- Find a list of users who wrote messages ---> <cfquery name = "GetMessageUser" datasource = "cfsnippets"> SELECT Username, Subject, Posted FROM Messages </cfquery> <cfset myList = ValueList(GetMessageUser.UserName)> <p>Here is the unsorted list. </p> <cfoutput>#myList# </cfoutput> <p>Here is the list sorted alphabetically:</p> <cfset sortedList = ListSort(myList, "Text")> <cfoutput>#sortedList# </cfoutput> <p>Here is a numeric list that is to be sorted in descending order.</p> <cfset sortedNums = ListSort("12,23,107,19,1,65","Numeric", "Desc")> <cfoutput>#sortedNums# </cfoutput> <p>Here is a list that must be sorted numerically, since it contains negative and positive numbers, and decimal numbers. </p> <cfset sortedNums2 = ListSort("23.75;-34,471:100,-9745","Numeric", "ASC", ";,:")> <cfoutput>#sortedNums2# </cfoutput> <p>Here is a list to be sorted alphabetically without consideration of case.</p> <cfset sortedMix = ListSort("hello;123,HELLO:jeans,-345,887;ColdFusion:coldfusion", "TextNoCase", "ASC", ";,:")> <cfoutput>#sortedMix# </cfoutput>