Estoy asumiendo que ya hay un contador en su lugar. en $ i que se incrementa al final de un ciclo, esto funciona para mí usando una consulta abreviada.
$row_pos = ($i & 1) ? 'odd' : 'even';
Entonces, ¿qué hace esto? Bueno, consulta la afirmación que estamos haciendo, en esencia, $ i es impar, dependiendo de si es verdadero o falso decidirá qué se devuelve. El valor devuelto llena nuestra variable $ row_pos
Mi uso de esto es colocarlo dentro del bucle foreach, justo antes de que lo necesite. Esto hace que sea un revestimiento muy eficiente para darme los nombres de clase apropiados, esto se debe a que ya tengo un contador para que los id usen luego en el programa. Este es un breve ejemplo de cómo usaré esta parte.
<div class='row-{$row_pos}'> random data <div>
Esto me da clases pares e impares en cada fila para que pueda usar la clase correcta y eliminar mis resultados impresos en la página.
El ejemplo completo de lo que uso nota que la identificación tiene el contador aplicado y la clase tiene mi resultado impar / par aplicado:
$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++;
}
En resumen, esto me da una forma muy simple de crear una bonita mesa.