I found a reasonable solution. It's always the simplest answers that work best.
Code:
<MvFUNCTION NAME = "Parse_For_Items" PARAMETERS = "src, array var" STANDARDOUTPUTLEVEL = "">
<MvASSIGN NAME = "l.item_count" VALUE = "{ [ g.site_lib_db ].Screen_Item_Load_All( l.items ) }">
<MvASSIGN NAME = "l.array_count" VALUE = "0">
<MvASSIGN NAME = "l.count" VALUE = "1">
<MvWHILE EXPR = "{ l.count LE l.item_count }">
<MvIF EXPR = "{ len( l.src ) NE len( glosub( l.src, '<mvt:item name="' $ l.items[ l.count ]:item_code, '' ) ) }">
<MvASSIGN NAME = "l.array_count" VALUE = "{ l.array_count + 1 }">
<MvASSIGN NAME = "l.array" INDEX = "{ l.array_count }" VALUE = "{ l.items[ l.count ]:item_id }">
</MvIF>
<MvASSIGN NAME = "l.count" VALUE = "{ l.count + 1 }">
</MvWHILE>
<MvFUNCTIONRETURN VALUE = "{ l.array_count }">
</MvFUNCTION>