Myślę, że gdybym miał to zrobić, stworzyłbym funkcję, która zbierałaby dostawców i ich produkty, a następnie przeglądała ich w pętli w celu wyświetlenia, coś takiego:
function getVendors()
{
foreach($_SESSION["products"] as $product) {
$org[$product["postbyvendor"]][] = $product["productname"];
}
return (!empty($org))? $org : array();
}
foreach(getVendors() as $vendor => $prods) {
echo "<li>{$vendor}</li>";
echo "<li>".implode("</li><li>",$prods)."</li>";
}