L'esempio che ho fatto io l'ho testato e funziona eccome!
L'ho testato con il link che ho messo nel mio primo post di risposta che calcola il costo delle quintè!

<?php
$p1[1]=1;
$p1[2]=2;
$p2[1]=3;
$p2[2]=5;

$p3[1]=4;
$p3[2]=10;

$p4[1]=5;
$p4[2]=19;


$p5[1]=6;
$p5[2]=20;

$co=0;
for ($a1=1; $a1<=count($p1); $a1++)
{

for ($a2=1; $a2<=count($p2); $a2++)
{
for ($a3=1; $a3<=count($p3); $a3++)
{
for ($a4=1; $a4<=count($p4); $a4++)
{
for ($a5=1; $a5<=count($p5); $a5++)
{ $pos=1;
if (($p1[$a1]==$p2[$a2]) || ($p1[$a1]==$p3[$a3]) || ($p2[$a2]==$p3[$a3]) || ($p1[$a1]==$p4[$a4]) || ($p2[$a2]==$p4[$a4]) || ($p3[$a3]==$p4[$a4]) || ($p1[$a1]==$p5[$a5]) || ($p2[$a2]==$p5[$a5]) || ($p3[$a3]==$p5[$a5]) || ($p4[$a4]==$p5[$a5]))
{
// si tratta di un elemento ripetuto e quindi non vale per il conteggio
}
else $co=$co+1;


}
}
}
}
}
echo $co;
?>

dà 24 che è il risultato corretto...io non lavoro mai con gli indici 0 perché non ci sono abituato...inizializzo sempre da 1...tu mettendoci l'inizializzazione così ti considera anche l'indice 0 mentre io nel programmino ho inizializzato dall'indice 0....puoi risolvere tutto mettendo, come ho detto prima (modificando il messaggio forse mentre tu stavi scrivendo la risposta) l'inizializzazione dei cicli for a 0 anziché a 1