説明

ソートのタイプとソート順に従って、リスト要素をソートします。

戻り値

ソートしたリストのコピー

カテゴリ

リスト関数

関数のシンタックス

ListSort(list,sortType,[sortOrder=asc, delimiters=',' ,includeEmptyFields=false, localeSensitive=false])

コールバックを使用する関数

ListSort(list,callback)

関連項目

ColdFusion アプリケーションの開発』の「ColdFusion 変数の使用」のリスト

履歴

ColdFusion(2018 リリース):名前付きパラメーターが導入されました。

ColdFusion 10:すべての Java でサポートされているロケール固有の文字のサポート(ウムラウト文字のサポートなど)が追加されました。このサポートのフラグは、sortType= "text" またはsortType= "textnocase" に対して追加されました。

ColdFusion MX:ソートされた要素が返される順序を変更しました。textnocase(降順)では、この関数は以前のリリースと異なるソート順で要素を返す場合があります。 sortTtype = "textnocase" および sortOrder = "desc" の場合、ColdFusion MX は大文字と小文字のみが異なる要素を、以前のリリースと異なる方法で処理します。ColdFusion MX では、昇順を指定した場合と逆の順序で要素を出力します。以前のリリースでは、大文字と小文字のみが異なる要素の順序は変更されません。これらはいずれも正しい処理ですが、新しい処理では、昇順と降順とで要素が逆の順序で出力されることが保証されます。例えば、textnocaseでは、d,a,a,b,Aを降順でソートすると次のようになります。

  • ColdFusion MX では、d,b,A,a,a が返されます。
  • 以前の ColdFusion のリリースでは、d,b,a,a,A が返されます(textnocaseでは、asc(昇順)でソートすると、ColdFusion のすべてのリリースにおいて a,a,A,b,d が返されます。)

パラメーター

パラメーター

必須/オプション デフォルト

説明

list

必須  

リスト、またはリストを含んでいる変数です。

includeEmptyFields

オプション no

空の値を含めるには、このフィールドを yes に設定します。

localeSensitive

オプション false

ロケールを考慮したソートを実行するかどうかを指定します。デフォルト値は false です。

sortType

オプション  
  • numeric:数値をソートします。
  • text:テキストをアルファベット順にソートし、大文字と小文字 を考慮(大文字と小文字を区別)します。大文字と小文字は分けられ、次のようにソートされます。
  • aabzABZ, if sortOrder = "asc" (昇順)- ZBAzbaa, if sortOrder = "desc" (降順)
  • textnocase:テキストを、大文字と小文字を区別せずにアルファベット順にソートします。この場合、大文字と小文字に関係なく、次のようにアルファベット順にソートされます。
  • aAaBbBzzZ(昇順ソート)。元の文字間の順序を保持します。ZzzBbBaAa(降順ソート)。元の文字間の順序を逆にします。

sortOrder

必須 asc
  • asc - 昇順のソート。デフォルト。
  • aabzABZ または aAaBbBzzZ(sortType の に従う)。文字(小文字から大文字の順)/数字用。
  • desc - 降順のソートです。
  • ZBAzbaa または ZzzBbBaAa(sortType の に従う)。文字(大文字から小文字の順)/数字用。

delimiters

オプション ,

文字列、または文字列を含んでいる変数です。リスト要素を区切る文字です。デフォルト値はカンマです。このパラメーターに複数の文字が含まれている場合は、最初の文字だけが区切り文字 として使用され、残りを無視します。

callback オプション   リストの 2 つの要素を使用し、最初の値が 2 番目の値よりも大きい、等しい、または小さい場合、それぞれ 1、0、または -1 を返す関数。

使用方法

ColdFusion では空のリスト要素が無視されるので、"a,b,c,,,d" の場合は 4 つの要素があることになります。

<h3>ListSort Example</h3> 

<!--- Find a list of users who wrote messages ---> 
<cfquery name = "GetMessageUser" datasource = "cfdocexamples"> 
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>

コールバックの例

<cfscript>
       myList="ColdFusion,COLDFUSION,Cold Fusion,Coldfusion";
       // define callback function
       function callback(e1,e2){
             return compareNoCase(e1,e2);
       }
       mySortedList=ListSort(myList,callback);
       writeOutput(mySortedList);
</cfscript>

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

リーガルノーティス   |   プライバシーポリシー