Код может быть еще более упрощен с помощью только foreach и взрыва.
Implode создает строку из массива с «клеем» между ними.
$cars = array (
array("Volvo",1,2,3),
array("BMW",4,5),
array("Saab",6,7,8,9),
array("Land Rover",10),
);
foreach($cars as $row => $sub){
echo "<p><b>Row number " . ($row +1) . "</b></p>\n";
echo "<ul>\n";
echo "<li>" . implode("</li><li>", $sub) . "</li>\n";
echo "</ul>\n\n";
}
Вывод:
<p><b>Row number 1</b></p>
<ul>
<li>Volvo</li><li>1</li><li>2</li><li>3</li>
</ul>
<p><b>Row number 2</b></p>
<ul>
<li>BMW</li><li>4</li><li>5</li>
</ul>
<p><b>Row number 3</b></p>
<ul>
<li>Saab</li><li>6</li><li>7</li><li>8</li><li>9</li>
</ul>
<p><b>Row number 4</b></p>
<ul>
<li>Land Rover</li><li>10</li>
</ul>
https://3v4l.org/aTYKg