Quiero agregar la palabra "y" entre los dos últimos resultados de MySQL. Puedo agregar comas pero necesito agregar comas entre las primeras y luego "y" entre las dos últimas.
Aquí está el código que estoy usando:
$not_first = false; foreach($solos as $solo) { if ($not_first) { echo ', '; } $not_first = true; echo $solo->id; }
Podría repetir 'y' en lugar de la coma. Pero si tengo 3 o más resultados diría "resultado y resultado y resultado y resultado". Quiero que diga "resultado, resultado, resultado y resultado".
¿Algunas ideas?
Intenta usar la siguiente idea
if (count($solos) > 2) { $last = array_pop($solos); echo implode(', ', $solos) . ' and ' . $last; } else { echo implode(' and ', $solos); }
Preferiría usar for
en lugar de foreach
en este caso:
for($i=0; $i<count($solos); $i++){ echo $solos[$i]->id; if($i == count($solos) - 2){ // --> second last element, implies "and" echo " and "; } else{ if($i != count($solos) - 1){ // --> "," for all other elements, except last echo ", "; } } }
O usa esto:
$i = 1; $last = count($solos); foreach($solos as $solo) { if ($i > 1 && $i != $last) { echo ', '; } elseif ( $i == $last ) { echo ' and '; } echo $solo->id; $i++; }