2

ご覧のとおり、私はかなり新しいです。次の変数を作成します。

  • V1= クエリの単語 1
  • V2= 私のクエリの単語 2
  • 等...

私はこれを次のように静的に行うことができます:

<cfset V1=#qryGetWords["WordName"][1]#>
<cfset V2=#qryGetWords["WordName"][2]#>
<cfset V3=#qryGetWords["WordName"][3]#>
<cfset V4=#qryGetWords["WordName"][4]#>

しかし、私はそれを動的に行いたいです。他の回答を見てきましたが、それらを機能させることもできません。次のようなものは、構文を微調整して機能しますか?

<cfloop query="qryGetWords" index="i">
<cfset "V#i#" = #qryGetWords["WordName"]["i"]#>
</cfloop>

cfloop 内にインデックスとクエリを含めることはできませんか?

4

3 に答える 3

2
<cfloop query="qryGetWords">
    <cfset "V#qryGetWords.currentRow#" = qryGetWords.WordName>
</cfloop>

注: の使用はqryGetWords.オプションcfloop query=です。省略しても機能します。それを使用することを好む人もいれば、好まない人もいます。それはあなたの選択です。

また

<cfloop from="1" to="#qryGetWords.recordCount#" index="i">
    <cfset "V#i#" = qryGetWords.WordName[i]>
</cfloop>
于 2013-05-17T17:16:02.070 に答える
1

それらをループするか、後でインデックスで参照する必要がある場合は、配列を検討するオプションです

もしそうなら、あなたはこのような配列を構築することができます

<cfset words = [] />
<cfloop query="queryname">
    <cfset arrayappend(words, queryname.wordname) />
</cfloop>

またはリストによる内部関数を介して

<cfset words = listtoarray(valuelist(queryname.wordname)) />

コンテンツにコンマが含まれている可能性がある場合は、選択した別の区切り文字を使用する必要があります (パイプ「|」を頻繁に使用しますが、改行 chr(10) が最も安全かもしれません。cf は文字で区切られた文字列が大好きです)

<cfset words = listtoarray(valuelist(queryname.wordname, chr(10)), chr(10)) />

次に、そのように静的に参照できます

<cfif something eq words[3]>
    #blah#
</cfif>

または動的にそうします(または、おそらく新しいバージョンの方が簡単です。私はまだCF8を使用しています)

<cfloop from="1" to="#arraylen(words)#" index="i">
    <cfoutput><div>#i#: #words[i]#</div>
</cfloop>

これにより、すべての単語を一度にダンプしたり、動的に生成された変数名/構造キーでは不可能な配列に対する操作を行うこともできます。

于 2013-05-17T20:17:49.910 に答える