Ciao, non so se hai già risolto ma analizzando il codice mi pare chiaro che il risultato sia esattamente quello.
Per ottenere il conteggio stai andando ad incrementare la variabile $conta_cinque, ma questo lo fai solo nella condizione in cui si crea una nuova riga. In sostanza la prima serie dei 5 viene saltata dal conteggio.
codice:
if(!(($index_spedizione++) % 5)) {
$conta_cinque += 1;
echo "<p>". $value_spedizione ."<p><hr>";
Qui vai ad inserire un <hr> dopo ogni 5 iterazioni, ed infatti alla fine risultano 7 <hr>, esattamente come il tuo conteggio.
C'è quindi un problema di impostazione del sistema usato. Io eseguirei il calcolo a prescindere dal ciclo, cioè semplicemente dividendo per 5 il numero di elementi dell'array e arrotondando per eccesso:
Codice PHP:
$conta_cinque = ceil(count($array_spedizione) / 5);
Inoltre anche la condizione (if else) può essere migliorata; dal momento che questa parte ("<p>". $value_spedizione ."<p>") dovrà sempre essere stampata, non ha senso metterla dentro l'else; puoi lasciarla fuori e mettere solo <hr> dentro la condizione.
Ottimizzando un po' di cose:
Codice PHP:
$array_spedizione = range(1, 36);
$conta_cinque = ceil(count($array_spedizione) / 5);
foreach($array_spedizione as $index_spedizione => $value_spedizione){
echo "<p>$value_spedizione<p>";
if(!(($index_spedizione+1) % 5)) echo "<hr>";
}
echo "<b>TOTALE OGNI 5 RIGHT =</b> ". $conta_cinque;