STRUCTSORT |
説明 構造体のトップレベルのキーを取り出してソートした配列を返します。ソートはアルファベット順か数値順で、構造体の任意の要素の値に基づいて行うことができます。
戻り値 トップレベルのキー名 (文字列) の配列。指定したサブ要素の値に基づいてソートされています。
カテゴリ 構造体関数
関数のシンタックス
    StructSort(base, sortType, sortOrder, pathToSubElement)
関連項目 構造体関数、『ColdFusion MX 開発ガイド』の第5章の「配列と構造体の使用」 の「構造体関数」
パラメータ
使用方法 pathToSubElement 文字列では、配列表記はサポートされていません。また、構造体のサブ構造体だけがサポートされます。 この関数では、構造体そのものに対するソートや変更は行われません。
例
    <cfscript>
       salaries = StructNew() ;
       employees = StructNew() ;
       departments = StructNew() ;
       for ( i=1; i lt 6; i=i+1 )
       {
          salary = 120000 - i*10000 ;
          salaries["employee#i#"] = salary ;

          employee = StructNew() ;
          employee["salary"] = salary ;
          // employee.salary = salary ;
          employees["employee#i#"] = employee ;

          departments["department#i#"] = StructNew() ;
          departments["department#i#"].boss = employee ;
       }
    </cfscript>

    <cfoutput>
    <p>給与でソートした従業員のリスト (テキスト順):<br>
    1) #ArrayToList( StructSort( salaries ) )#<br>
    2) #ArrayToList( StructSort( salaries, "text", "ASC" ) )#<br>
    3) #ArrayToList( StructSort( salaries, "textnocase", "ASC" ) )#<br>
    4) #ArrayToList( StructSort( salaries, "text", "DESC" ) )#<br>
    <p>給与でソートした従業員のリスト (数値順):<br>
    5) #ArrayToList( StructSort( salaries, "numeric", "ASC" ) )#<br>
    6) #ArrayToList( StructSort( salaries, "numeric", "DESC" ) )#<br>
    <p>給与でソートした従業員のリスト (サブフィールドによる):<br>
    7) #ArrayToList( StructSort( employees, "numeric", "DESC", "salary" ) )#<br>
    8) #ArrayToList( StructSort( employees, "text", "ASC",  "salary" ) )#<br>
    <p>給与でソートした部門のリスト (サブサブフィールドによる):<br>
    9) #ArrayToList( StructSort( departments, "text", "ASC", "boss.salary" ) )#<br>
    </cfoutput>

    <!--- 無効な要素を追加し、それによって例外が発生することをテスト --->
    <p><p>
    <cfset employees[ "employee4" ] = StructNew()>
    <cftry>
       <cfset temp = StructSort( employees, "text", "ASC", "salary" )>
       <cfoutput>ここに来たとしたら問題です。本来は上の行で例外が発生しているはずです。<br>
    </cfoutput>
    <cfcatch type="any">
       <cfoutput>
          ERROR:<b>予定どおりエラーとなりました。</b><br>
          #cfcatch.message# - #cfcatch.detail#<br>
       </cfoutput>
    </cfcatch>
    </cftry>

BASE |
1 つのフィールド (連想配列) を持つ構造体です。

SORTTYPE |

- numeric
- text: 大文字と小文字が区別されます。すべての小文字が優先され、大文字はその後ろに並べられます (デフォルト)。
- textnocase

SORTORDER |

- asc: 昇順 (a 〜 z) のソートです (デフォルト)。
- desc: 降順 (z 〜 a) のソートです。

PATHTOSUBELEMENT |
文字列、または文字列を含んでいる変数です。
ソートのキーとなる要素の値にアクセスするためのパスです。トップレベルの各キーからの パスで指定します。デフォルト値は、なしです (トップレベルのエントリ自身の値に基づい てソートが行われます)。