PHP - 无法获得与<ul>相同的数量

时间:2015-11-29 06:09:06

标签: php html

我无法在以下代码中生成与</ul>相同数量的<ul>

<?php
$array=array("item1","item2","item3");
for ($i=0;$i<count($array);$i++)
{
    if($i<count($array)-1)
    {
    echo '<li><span>'.$array[$i].'</span><ul>';
    }
    else
    {
    echo '<li><span>'.$array[$i].'</span>';
    }
}
for ($i=0;$i<count($array);$i++)
{
    echo '</ul></li>';
}
?>

代码生成的<li><ul></ul></li>数量不均匀。请告诉我哪里出错了?

3 个答案:

答案 0 :(得分:1)

这是一个小错误。在您的第二个for语句更改$i<count($array);$i<count($array)-1;

所以你的最终代码将是:

<?php
$array=array("item1","item2","item3");
for ($i=0;$i<count($array);$i++)
{
    if($i<count($array)-1)
    {
    echo '<li><span>'.$array[$i].'</span><ul>';
    }
    else
    {
    echo '<li><span>'.$array[$i].'</span>';
    }
}
for ($i=0;$i<count($array)-1;$i++)
{
    echo '</ul></li>';
}
?>

答案 1 :(得分:0)

使用if($i<count($array)-1)检查$ i是否小于长度 - 1.

在第二个循环中不执行该检查。所以第一个实际上执行的步骤与第二个步骤相同,但只在最后一次迭代中写入。

答案 2 :(得分:0)

试试这个:

$array=array("item1","item2","item3");
echo '<ul>';
for ($i=0;$i<count($array);$i++)
{    
    echo '<li><span>'.$array[$i].'</span></li>';
}
echo '</ul>;