Skip to content

Instantly share code, notes, and snippets.

@MyCueCards
Created April 6, 2019 01:09
Show Gist options
  • Save MyCueCards/b2d6965159c0d5f14c39f85d91286141 to your computer and use it in GitHub Desktop.
Save MyCueCards/b2d6965159c0d5f14c39f85d91286141 to your computer and use it in GitHub Desktop.
Example of loops in Salesforce Marketing Cloud AMPscript
<!-- AMPscript block above <HTML> -->
%%[
VAR @string
SET @string = 'PositionA1[|]PositionA2[|]PositionA3[|]PositionA4a,PositionA4b|PositionA4c,PositionA4d[^]PositionB1[|]PositionB2[|]PositionB3[|]PositionB4a,PositionB4b|PositionB4c'
SET @Array = BuildRowsetFromString(@string,"[^]")
]%%
<!-- Start HTML, Email Snippet -->
<html>
<body>
%%[
FOR @i=1 TO ROWCOUNT(@array) DO
SET @outputArray = BuildRowsetFromString(FIELD(ROW(@array,@i),1),"[|]")
]%%
<p>
%%=FIELD(ROW(@outputArray,1),1)=%% <br>
%%=FIELD(ROW(@outputArray,2),1)=%% <br>
%%=FIELD(ROW(@outputArray,3),1)=%% <br>
</p>
%%[NEXT @i]%%
%%[
SET @innerLoop = BuildRowsetFromString(FIELD(ROW(@outputArray,4),1),"|")
IF ROWCOUNT(@innerLoop) > 0 THEN
FOR @j=1 TO ROWCOUNT(@innerLoop) DO
SET @outputInnerLoop = BuildRowsetFromString(FIELD(ROW(@innerLoop,@j),1),",")
]%%
<p>
%%=IIF(ROWCOUNT(@outputInnerLoop)>0,FIELD(ROW(@outputInnerLoop,1),1),"")=%% - %%=IIF(ROWCOUNT(@outputInnerLoop)>1,FIELD(ROW(@outputInnerLoop,2),1),"Does Not Exist")=%%
</p>
%%[NEXT @j ENDIF]%%
</body>
</html>
<!-- Output Shown Below -->
PositionA1
PositionA2
PositionA3
PositionB1
PositionB2
PositionB3
PositionB4a - PositionB4b
PositionB4c - Does Not Exist
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment