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