Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

129
Views
Adding "and" between last two database results in foreach loop

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?

about 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Try to use next idea

if (count($solos) > 2) {
    $last = array_pop($solos);
    echo implode(', ', $solos) . ' and ' . $last;
}
else
{
    echo implode(' and ', $solos);
}
about 4 years ago · Santiago Trujillo Report

0

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 ", ";
        }    
    }
}
about 4 years ago · Santiago Trujillo Report

0

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++;
    }
about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!