2017-07-07 3 views
0

これは簡単なはずですが、CFは配列に関しては同じことを達成するさまざまな方法を持っているようですので、私はそれを最善の方法でやっていると確信しています。<cfif>値はループなしの配列にありますか?

私は単純なcfoutputを持っています。

<cfoutput query="getusers"> 
Username: #username# ID:#fnid# 
</cfoutput> 

私はまた、ページ上の他の場所cfwebsocketを使用していて、(session.auth変数である)「fnid」の値は、サブスクリプションの一部です。 wsGetSubscribersのダンプは私に以下を与えます:

enter image description here

私は何をしたいのは、「getusers」クエリの出力の間にある、subscriberinfo.fndid下FNIDがあるかどうかを確認します - 目標は、ということを言うためにメモを追加することユーザーはその時点で購読しています。

私はcfloopを使ってこれを行うことができますが、それは長い間待ち望まれているようです! CFOUTPUTクエリ内

私は何を避けるためにしようとしていること(アレイ上)のcfloopを使用する必要がされて
+0

''を持っているときには、ループがあります。開始タグと終了タグの間に必要なロジックを入れてください。 –

+0

@DanBracukああ、私は知っている - しかし、私はそこに(クエリではなく、配列)別のデータをループしています。私が避けようとしているのは、cfoutputクエリ内でcfloopを(配列上で)使用しなければならないことです – Lee

答えて

1

ですから、fnIdためのルックアップのようなものをしたいですか?どの程度:あなたは<cfloop>上で、この構文を好む場合

<cfset subscribersById = StructNew()> 

<cfloop array="#wsGetSubscribers()#" index="subsciption"> 
    <cfset subscribersById[subsciption.subscriberInfo.fnId] = subsciption> 
</cfloop> 

<cfoutput query="getusers"> 
    Username: #username# ID: #fnid# Subscribed: #StructKeyExists(subscribersById, fnid)# 
</cfoutput> 

CF10 +は、同様arrayEach()を持っています。

関連する問題