我有多个列的查询应该像这样组织:
Array One = [
Line1 = [{value:"15",m:1,nr:0},{value:"25",m:1,nr:1},{value:"0",m:0,nr:0},
{value:"75",m:0,nr:0}],
Line2 = [{value:"35",m:0,nr:0},{value:"5",m:1,nr:0},{value:"80",m:1,nr:0},
{value:"95",m:0,nr:0}],
]
所以上面我有一个内部有子数组的数组。每个子数组代表新行。在每个子数组中,都有一个带有value
,m
和nr
键的结构。我的问题是我如何动态地做到这一点?以下是我的查询示例:
<cfquery name="getRec" datasource="Test">
SELECT
hs_ra0,hs_ra1,hs_ra2,hs_ra3,hs_ra4,hs_ra5,hs_ra6,hs_ra7,hs_ra8,hs_ra9,hs_ra10,
hs_ra0m,hs_ra1m,hs_ra2m,hs_ra3m,hs_ra4m,hs_ra5m,hs_ra6m,hs_ra7m,hs_ra8m,hs_ra9m,hs_ra10m,
hs_ra0nr,hs_ra1nr,hs_ra2nr,hs_ra3nr,hs_ra4nr,hs_ra5nr,hs_ra6nr,hs_ra7nr,hs_ra8nr,hs_ra9nr,hs_ra10nr,
hs_la0,hs_la1,hs_la2,hs_la3,hs_la4,hs_la5,hs_la6,hs_la7,hs_la8,hs_la9,hs_la10,
hs_la0m,hs_la1m,hs_la2m,hs_la3m,hs_la4m,hs_la5m,hs_la6m,hs_la7m,hs_la8m,hs_la9m,hs_la10m,
hs_la0nr,hs_la1nr,hs_la2nr,hs_la3nr,hs_la4nr,hs_la5nr,hs_la6nr,hs_la7nr,hs_la8nr,hs_la9nr,hs_la10nr
FROM Records WITH (NOLOCK)
WHERE recID = '118976'
</cfquery>
以下是我的尝试:
<cfset grData = structNew()>
<cfset grArray = arrayNew(1)>
<cfset raArray = arrayNew(1)>
<cfset count = 0>
<cfoutput query="getRec">
<cfset structInsert(grData,"val"&count,hs_ra0)>
<cfset structInsert(grData,"mask"&count,hs_ra0m)>
<cfset structInsert(grData,"nr"&count,hs_ra0nr)>
<cfset arrayAppend(raArray, grData)>
<cfset count++>
<cfset structInsert(grData,"val"&count,hs_ra1)>
<cfset structInsert(grData,"mask"&count,hs_ra1m)>
<cfset structInsert(grData,"nr"&count,hs_ra1nr)>
<cfset arrayAppend(raArray, grData)>
<cfset count++>
</cfoutput>
<cfset arrayAppend(grArray, raArray)>
上面的代码产生了下一个输出:
array
1
array
1
struct
mask0 1
mask1 0
nr0 0
nr1 1
val0 75
val1 0
2
struct
mask0 1
mask1 0
nr0 0
nr1 1
val0 75
val1 0
这是我到目前为止找到的第二个解决方案:
<cfoutput query="getRec">
<cfset raArray = [{"value"=hs_ra0,"mask"=hs_ra0m,"nr"=hs_ra0nr},{"value"=hs_ra1,"mask"=hs_ra1m,"nr"=hs_ra1nr},{"value"=hs_ra2,"mask"=hs_ra2m,"nr"=hs_ra2nr},{"value"=hs_ra3,"mask"=hs_ra3m,"nr"=hs_ra3nr},
{"value"=hs_ra4,"mask"=hs_ra4m,"nr"=hs_ra4nr},{"value"=hs_ra5,"mask"=hs_ra5m,"nr"=hs_ra5nr},{"value"=hs_ra6,"mask"=hs_ra6m,"nr"=hs_ra6nr},{"value"=hs_ra7,"mask"=hs_ra7m,"nr"=hs_ra7nr},
{"value"=hs_ra8,"mask"=hs_ra8m,"nr"=hs_ra8nr},{"value"=hs_ra9,"mask"=hs_ra9m,"nr"=hs_ra9nr},{"value"=hs_ra10,"mask"=hs_ra10m,"nr"=hs_ra10nr}]>
<cfset laArray = [{"value"=hs_la0,"mask"=hs_la0m,"nr"=hs_la0nr},{"value"=hs_la1,"mask"=hs_la1m,"nr"=hs_la1nr},{"value"=hs_la2,"mask"=hs_la2m,"nr"=hs_la2nr},{"value"=hs_la3,"mask"=hs_la3m,"nr"=hs_la3nr},
{"value"=hs_la4,"mask"=hs_la4m,"nr"=hs_la4nr},{"value"=hs_la5,"mask"=hs_la5m,"nr"=hs_la5nr},{"value"=hs_la6,"mask"=hs_la6m,"nr"=hs_la6nr},{"value"=hs_la7,"mask"=hs_la7m,"nr"=hs_la7nr},
{"value"=hs_la8,"mask"=hs_la8m,"nr"=hs_la8nr},{"value"=hs_ra9,"mask"=hs_ra9m,"nr"=hs_ra9nr},{"value"=hs_ra10,"mask"=hs_ra10m,"nr"=hs_ra10nr}]>
<cfset rbArray = [{"value"=hs_rb0,"mask"=hs_rb0m,"nr"=hs_rb0nr},{"value"=hs_rb1,"mask"=hs_rb1m,"nr"=hs_rb1nr},{"value"=hs_rb2,"mask"=hs_rb2m,"nr"=hs_rb2nr},{"value"=hs_rb3,"mask"=hs_rb3m,"nr"=hs_rb3nr},
{"value"=hs_rb4,"mask"=hs_rb4m,"nr"=hs_rb4nr},{"value"=hs_rb5,"mask"=hs_rb5m,"nr"=hs_rb5nr},{"value"=hs_rb6,"mask"=hs_rb6m,"nr"=hs_rb6nr},{"value"=hs_rb7,"mask"=hs_rb7m,"nr"=hs_rb7nr},
{"value"=hs_rb8,"mask"=hs_rb8m,"nr"=hs_rb8nr},{"value"=hs_rb9,"mask"=hs_rb9m,"nr"=hs_rb9nr},{"value"=hs_rb10,"mask"=hs_rb10m,"nr"=hs_rb10nr}]>
<cfset sfArray = [{"value"=hs_sf0},{"value"=hs_sf1},{"value"=hs_sf2},{"value"=hs_sf3},{"value"=hs_sf4},{"value"=hs_sf5},{"value"=hs_sf6},{"value"=hs_sf7},{"value"=hs_sf8},{"value"=hs_sf9},{"value"=hs_sf10}]>
<cfset sfaArray = [{"value"=hs_sfa0},{"value"=hs_sfa1},{"value"=hs_sfa2},{"value"=hs_sfa3},{"value"=hs_sfa4},{"value"=hs_sfa5},{"value"=hs_sfa6},{"value"=hs_sfa7},{"value"=hs_sfa8},{"value"=hs_sfa9},{"value"=hs_sfa10}]>
我得到了所需的输出,但我想知道这种硬编码解决方案是否可以简化或动态生成?
似乎每个子数组中都显示相同的值。
如果有人可以帮忙解决这个问题,请告诉我们。谢谢!