Une boucle dans un tableau à l'aide de ColdFusion
J'ai un panier de tableau, qui est une variable de me dire si le produit est un accessoire ou pas, ce sera oui ou non. J'ai besoin d'une boucle sur le panier et découvrir la suivante:
- Si le panier contient des accessoires; ne que ce soit.
- Si le panier est uniquement pour les produits; faire quoi que ce soit.
- Si le panier a les produits et les accessoires; faire quoi que ce soit.
J'ai essayé ceci:
<cfloop index="i" from="1" to="#arrayLen(session.mycart)#">
<cfif session.mycart[i].accs EQ "yes">
<cfset accPresent = "yes">
</cfif>
<cfif session.mycart[i].accs EQ "no">
<cfset prodpresent = "yes">
</cfif>
</cfloop>
<cfif accPresent EQ "yes" and prodPresent EQ "no">
<cfset bothPresent EQ "yes">
</cfif>
Cela tombe sous accPresent n'est pas trouvé, je pense que c'est dû au fait que la boucle passe par un à la fois et l'accs n'est pas égal à oui une fois qu'il trouve un non accessoire. Quelle est la meilleure façon de réaliser ce que je suis en train de faire?
Vous devez vous connecter pour publier un commentaire.
Ce faire
<cfif accPresent EQ "yes" and prodPresent EQ "no"> be
<cfif accPresent EQ "oui" et prodPresent EQ "oui">Jason,
Votre 3ème déclaration suppose que AccPresent et ProdPresent permettra à la fois d'exister. Avez-vous créer leur première et de leur donner des valeurs par défaut? Essayez ceci:
Cela suppose bien sûr que chacun d'entre eux doit être réglé sur "non" par défaut.
cfbreak
fait plus de sens là.<cfif accessoryCount and productCount>has both </cfif>
Dans les versions de ColdFusion 8 et plus, un
<cfloop>
pouvez utiliser un tableau directementRemarque: Que
i
se réfère à la structure contenant les données, pas de position des donnéeshttp://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=Tags_j-l_15.html
Dans les FC 10 (ou Railo 4), ce qui peut être fait de manière plus élégante à l'aide de cfscript et la Le trait de soulignement.cfc bibliothèque:
La grande chose au sujet d' _.find() est qu'il s'arrête dès que l'itérateur de la fonction renvoie true, alors vous n'avez pas à effectuer une itération sur chaque élément dans le tableau.
Remarque: l'Utilisation de duplcate() est recommandée lors de l'accès partagé-portée des variables afin d'éviter les blocages.
(Disclaimer: j'ai écrit le trait de Soulignement.cfc)