J'aurais fait un truc dans ce genre :
<?php
// Donnees fictives
$listeProduits=array(
"abar","abar","abar","abar","abar","abar","abar","abar","abar","abar","abar","abar","abar","abar","abar","abar",
"afoo","afoo","afoo","afoo","afoo","afoo","afoo","afoo","afoo","afoo","afoo","afoo","afoo","afoo","afoo","afoo",
"bbar","bbar","bbar","bbar","bbar","bbar","bbar","bbar","bbar","bbar","bbar","bbar","bbar","bbar","bbar","bbar",
"bfoo","bfoo","bfoo","bfoo","bfoo","bfoo","bfoo","bfoo","bfoo","bfoo","bfoo",
"dbar",
"fbar","fbar","fbar","fbar","fbar","fbar","fbar","fbar","fbar","fbar","fbar","fbar","fbar","fbar","fbar",
"ffoo","ffoo","ffoo","ffoo","ffoo","ffoo","ffoo","ffoo",
"zend","zend","zend","zend","zend","zend","zend","zend","zend","zend","zend","zend","zend","zend","zend","zend","zend","zend","zend","zend");
// Affichage avec ancres nommees
$alphabet=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
$liens ='';
foreach ($alphabet as $lettre) {
$liens .= '<a href="#'.$lettre.'">[ '.$lettre.' ]</a> ';
}
$liens .='<a href="#">[top]</a>';
$index = '';
foreach ($listeProduits as $produit) {
if ($produit[0]!=$index) {
$index=$produit[0];
echo '<p id="'.$produit[0].'">'.$liens.'</p>';
}
echo '<p>'.$produit.'</p>';
}