Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
710 views
in Technique[技术] by (71.8m points)

php - create html list from array with levels

I have an array like this

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'
     ),
}

And I have to create multiple list in html (list like categories with subcategories etc) how can I do this?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

If you need list with ul, li tags, try to use this code. It should work.

$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>';

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...