I want to add the word "and" between the last two MySQL results. I can add commas but I need to add commas between the first ones and then "and" between the last two.
Here is the code I'm using:
$not_first = false;
foreach($solos as $solo)
{
if ($not_first)
{
echo ', ';
}
$not_first = true;
echo $solo->id;
}
I could echo 'and' instead of the comma. But if I have 3 or more results it would say "result and result and result and result". I want it to say "result, result, result, and result".
Any ideas?
Try to use next idea
if (count($solos) > 2) {
$last = array_pop($solos);
echo implode(', ', $solos) . ' and ' . $last;
}
else
{
echo implode(' and ', $solos);
}
I'd prefer using for
instead of foreach
in this case:
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 ", ";
}
}
}
Or use this:
$i = 1;
$last = count($solos);
foreach($solos as $solo)
{
if ($i > 1 && $i != $last)
{
echo ', ';
}
elseif ( $i == $last )
{
echo ' and ';
}
echo $solo->id;
$i++;
}