Io di solito uso un contatore $i che incremento all'interno del ciclo, poi valuto il risultato di ($i % 2), ossia il resto intero della divisione di $i per 2 (se è 0 il numero è pari, se è 1 il numero è dispari)

esempio semplice:
codice:
$i = 0;
while ... {
    if (($i % 2) == 0) {
        // pari
    }
    else {
        // dispari
    }
    $i++;
}
in questo modo diventa semplice esterndere il discorso quando i colori che si alternano sono 3, 4, 5, ... (colori o "situazioni" che si alternano in sequenza)