In realtà avevo sbagliato ancora... credevo che il count di $arr1 desse sia il numero max di elementi che la posizione da recuperare... prova questo sperando di averci preso stavolta 

Codice PHP:
function elabora($arr1, $arr2, $pos)
{
$nElementiTotali = count($arr2); // numero di elementi totali
if ($pos > $nElementiTotali || $pos == 0)
{
exit('qui da errore poichè cerchi di recuperare una posizione eccedente il numero di elementi o perchè la pos è 0 (inesistente)');
}
$nElementiGruppo = count($arr1); // numero di elementi per ogni gruppo
$nGruppi = ceil($nElementiTotali/$nElementiGruppo); // il numero di gruppi da creare
$result = array(); // questa array sarà valorizzata con tutti i valori da restituire
$z = 0;
for ($i = 0; $i < $nElementiTotali; $i++)
{
$z = $i % $nElementiGruppo == 0 ? ++$z : $z;
$result['gruppi'][$z][$i+1] = $arr2[$i];
if ($i + 1 == $pos)
{
$result['n_gruppo'] = $z;
$result['v_elem'] = $arr2[$i];
$result['p_elem'] = count($result['gruppi'][$z]);
}
}
return $result;
}
$arr1 = array('c1', 'c2', 'c3');
$arr2 = array('va1', 'va2', 'va3', 'va4', 'va5');
$pos = $_GET['pos']; // in modo che quando la testi non devi stare li a modificare il valore ma lo passi dal browser
$elabora = elabora($arr1, $arr2, $pos);
echo "Numero del gruppo => ${elabora['n_gruppo']}
";
echo "Posizione elemento nel gruppo => ${elabora['p_elem']}
";
echo "Valore dell'elemento => ${elabora['v_elem']}
";
echo 'Altri elementi del gruppo => ' . implode(' ', $elabora['gruppi'][$elabora['n_gruppo']]) . '
';
echo "Tutti i gruppi creati";
var_dump($elabora['gruppi']);
Come noterai ho cambiato gli indici dei gruppi e degli elementi, che partono da 1 e non da 0... credo sia più comodo cosi, in caso contrario si modifica facilmente. Come scritto nel commento al codice quando lo testi richiama la pagina con pagina.php?pos=POSIZIONE.