Phil Phil - 4 months ago 10
PHP Question

PHP iterating through a simple comma separated list

I have a string which can be

$string = "value.";


OR

$string = "value1, value2.";


I want to iterate through this string getting each item which are ->
value
(in first example) and ->
value1
AND
value2
in the second (without the comma or the dot in the end).

I was thinking of;


  1. Replace the dot in the end.

  2. Check if there is any comma.

  3. If there is comma, split-explode using ", " and iterate through.

  4. If not, only one item so just use it.



Is this the right way of doing it?

I am new to PHP and trying to learn best practices and best ways of solving the issues.

Thank you.

Answer

You're absolutely right, you could do it like this:

$string = 'foo, bar, baz.';
$string = preg_replace('/\.$/', '', $string); //Remove dot at end if exists
$array = explode(', ', $string); //split string into array seperated by ', '
foreach($array as $value) //loop over values
{
    echo $value . PHP_EOL; //print value
}