2010-06-14 96 views
2

我有一個數組項[] items []中的每個項目都是一個結構體。 項目有按鍵標識,日期,金額(即item.id,item.date,item.value)Coldfusion 8:結構體結構數組結構體

我想用StructSort按日期

到項目收集整理這是最好的方法做到這一點在ColdFusion的8:

<cfset allStructs = StructNew()> 
<cfloop array = #items# index = "item"> 
    <cfset allStructs[item.id] = item> 
    <cfset unixtime = DateDiff("s", CreateDate(1970,1,1), item.date)> 
    <cfset allStructs[item.id].unixtime = unixtime> 
</cfloop> 
<cfset allStructs = StructSort(allStructs, "numeric", "desc", "unixtime")> 

這將是可怕緩慢

+3

它有多慢?您也可以將其轉換爲查詢並使用Query-of-queries對其進行排序。可能會更快。 – 2010-06-14 23:31:03

回答

3

您仍然需要轉換爲unixtime,但ArrayOfStructsSort可能會更快。至少你可以比較兩個選項。

+0

Ooooh謝謝。我會做一個比較。現在我決定將已排序的結構體緩存到會話中,因此只有會話的初始加載速度較慢(〜3-5s avg)。 (也不使用應用程序範圍,因爲這些都是會話特定的值,我不需要一堆瘋狂的鎖定) – davidosomething 2010-06-15 00:59:43