2010-06-14 5 views
2

J'ai un tableau éléments [] Chaque élément dans les éléments [] est une structure. article a id clés, la date, la valeur (c.-à-item.id, item.date, item.value)Coldfusion 8: Tableau de structures à structure de structures

Je veux utiliser StructSort pour trier la collection d'éléments à une date

Est-ce la meilleure façon de le faire dans 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")> 

il va être terriblement lent

+3

est-ce que c'est lent? Vous pouvez également le convertir en requête et utiliser Query-of-queries pour le trier. Peut-être plus rapide. –

Répondre

3

Vous aurez toujours besoin de se convertir à unixtime, mais ArrayOfStructsSort pourrait être plus rapide. Au moins, vous pouvez comparer les deux options.

+0

Ooooh merci. Je vais faire une comparaison. En ce moment j'ai décidé de mettre en cache la structure triée dans la session, donc seulement la charge initiale pour la session est lente (~ 3-5s avg). (ne pas utiliser la portée de l'application car ce sont des valeurs spécifiques à la session et je n'ai pas besoin d'un tas de verrouillage fou) – davidosomething

Questions connexes