Estou assumindo que já existe um contador. em $ i, que é incrementado no final de um loop, isso funciona para mim usando uma consulta abreviada.
$row_pos = ($i & 1) ? 'odd' : 'even';
Então, o que isso faz, bem, ele consulta a afirmação que estamos fazendo em essência $ i é estranha, dependendo se verdadeiro ou falso irá decidir o que será retornado. O valor retornado preenche nossa variável $ row_pos
Meu uso disso é colocá-lo dentro do loop foreach, logo antes de precisar. Isso torna um liner muito eficiente para me fornecer os nomes de classe apropriados, isso ocorre porque eu já tenho um contador para os IDs usarem. posteriormente no programa. Este é um breve exemplo de como vou usar esta parte.
<div class='row-{$row_pos}'> random data <div>
Isso me dá classes ímpares e pares em cada linha, para que eu possa usar a classe correta e distribuir meus resultados impressos pela página.
O exemplo completo do que eu uso, note que o id tem o contador aplicado e a classe tem o meu resultado ímpar / par aplicado a ele:
$i=0;
foreach ($a as $k => $v) {
$row_pos = ($i & 1) ? 'odd' : 'even';
echo "<div id='A{$i}' class='row-{$row_pos}'>{$v['f_name']} {$v['l_name']} - {$v['amount']} - {$v['date']}</div>\n";
$i++;
}
em resumo, isso me dá uma maneira muito simples de criar uma tabela bonita.