En realidad el bucle foreach sí que te da el índice del elemento del array, aunque tienes que especificar que lo deseas recibir en la cabecera del bucle.
Una vez tienes el índice, solamente tienes que comprobar que no sea igual al número de elementos del array menos 1.
Lo harías de esta manera:
foreach($productos as $index => $producto) {
// detectar todos menos el último:
if($index != count($productos) - 1) {
// Este código se ejecutará para todos menos el último
echo " --- ";
}
}
Alfonso
293
11
19
18