@Henry имел рабочий ответ на мой сервер CF9 однако, когда я включил в моем списке с 2000 или около того пунктов в нем, этот метод будет иметь значительную задержку, так что я в конечном итоге придумывают мой собственный способ сделать это, который оказался очень быстро:
<cfset digits = "0,1,2,3,4,5,6,7,8,9">
<cfset numList = "">
<cfloop index="item" list="#arguments.input#">
<cfif ListFindNoCase(digits, Left(item, 1)) >
<cfset numindex = ListFindNoCase(arguments.input, item) >
<cfset numList = ListAppend(numList, item)>
<cfset arguments.input = ListDeleteAt(arguments.input, numindex) >
</cfif>
</cfloop>
<cfset numList = ListSort(numList, "textnocase", "asc") >
<cfset arguments.input = ListSort(arguments.input, "textnocase", "asc") >
<cfset arguments.input = ListAppend(arguments.input, numList)>
<cfreturn arguments.input >
Какую версию CF вы используете? Не совсем тот же вопрос, но вы можете взглянуть на: http://stackoverflow.com/questions/25048779/sorting-array-by-custom-order-in-coldfusion/25049147#25049147 – Henry
Этот список должен откуда-то откуда-то. Ищите возможность правильно сортировать его по мере его создания, а не после его создания. –
@DanBracuk Он исходит из базы данных любого вида по функциям, которые будут делать это в SQL? – user3376065