phphtmlloopslistitemdelimited

Print each value of a delimited string as an HTML list item


I have input like this:

$recipe['ingredients'] = '100ml milk, 350ml double cream, 150ml water';

I'm trying to split it up so it looks as follows:

<ul>
    <li>100ml milk</li>
    <li>350ml double cream</li>
    <li>150ml water</li>
</ul>

So far I have the following code:

$ingredientsParts = explode(',', $row_rs_recipes['ingredients']);
$ingredients = array($ingredientsParts);
while (! $ingredients) { 
   echo" <li>$ingredients</li>";
}

but nothing gets printed.


Solution

    1. When you explode() a string it is automatically converted into an array. You do not need to convert it to an array type as you did on the second line.
    2. You want to use a foreach() loop to iterate through an array, not a while loop.

         $ingredientsAry = explode(',', $row_rs_recipes['ingredients']);
         foreach($ingredientsAry as $ingredient){
             echo "<li>$ingredient</li>";
         }
      

    In fact you can just do a foreach() loop on the explode() value

    foreach(explode(',', $row_rs_recipes['ingredients']) as $ingredient){
        echo "<li>$ingredient</li>";
    }