This & is necessary to pass the element of array by reference so it should present because $products array won't be modified without it.
But I have found another bug (error message for the categories with no products in it)
so try with
Code:
if (count($products))
foreach($products as &$pp){
$pp['product_options'] = func_get_product_classes($pp['productid'], false);
}
in products.php
and
Code:
{foreach from=$products[product].product_options item=v}{if $v.class|lower eq 'size'}starting at{/if}{/foreach}
for skin1/customer/main/products.tpl