Re-
Je n'avais pas bien regardé l'algorithme du lien que tu as donné, en fait il marche à tous les coups et il est très simple.
Il consiste à dessiner tout le camembert en couleurs sombres, de bas en haut.
Puis on redessine le dessus en couleurs claires
Or toi tu dessines part par part. Et de plus, dans le dessin de chaque couche, tu alternes couleur sombre/couleur claire.
Donc tu ne respectes pas du tout l'aglorithme de l'exemple.
Ça devrait donner quelque chose du genre :
function unecouche ($image,$posy,$couleur,$arrliste,$somme) {
$last_angle=0;
foreach($arrListe as $value){ // On lit les valeurs une par une
$moyenne_valeur = ($value * 100)/$somme; // Moyenne de chaque valeurs par rapport au total des valeurs
$arclen = (360 * $moyenne_valeur) / 100; // Grandeurs de la portion correspondant à la valeur courante
imagefilledarc($image, 400, $posy, 425, 225, $last_angle, ($last_angle + $arclen) , $couleur, IMG_ARC_PIE);
$last_angle+=$arclen;
} // function unecouche ($couleur,$arrliste) {
// traçage de l'épaisseur
for ($i = 260; $i > 230; $i--) unecouche( $image,$i,$sombre,$arrliste,$somme);
// traçage de la surface
unecouche( $image,230,$clair,$arrliste,$somme);