从具有级别的数组创建html列表

时间:2015-06-24 13:15:33

标签: php html

我有一个像这样的数组

array(){
     [0] => Object(
        lvl => 0,
        name ='1'
     ),
     [1] => Object(
        lvl => 1,
        name ='2'
     ),
     [2] => Object(
        lvl => 2,
        name ='3'
     ),
     [3] => Object(
        lvl => 1,
        name ='4'
     ),
     [4] => Object(
        lvl => 0,
        name ='5'
     ),
}

我必须在html中创建多个列表(列表类似子类别等)我该怎么做?

2 个答案:

答案 0 :(得分:1)

这样的事情:

foreach ($array as $object) {
    echo '<p class="level', $object->lvl, '">', $object->name, '</p>';
}

您必须在CSS文件中定义类(level1,level2,level3 ...)。

或者您可以使用一些符号来缩进。像这样:

echo '<p>', str_repeat('-', $object->lvl), $object->name, '</p>';

答案 1 :(得分:1)

如果您需要带有ul,li标签的列表,请尝试使用此代码。它应该工作。

$lastLvl = 1;
echo '<ul>';
foreach ($array as $object) {
    if ($object->lvl < $lastLvl) {
        for ($i = 1; $i <= ($lastLvl - $object->lvl); $i++)
            echo '</ul>';
    }

    if ($object->lvl > $lastLvl) {
        for ($i = 1; $i <= ($object->lvl - $lastLvl); $i++)
            echo '<ul>';
    }
    echo '<li>', $object->name, '</li>';

    $lastLvl = $object->lvl;
}
for ($i = 1; $i <= $lastLvl; $i++)
    echo '</ul>';