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

Php 从具有级别的数组创建html列表,php,html,Php,Html,我有一个这样的数组 array(){ [0] => Object( lvl => 0, name ='1' ), [1] => Object( lvl => 1, name ='2' ), [2] => Object( lvl => 2, name ='3' ), [3] => Object

我有一个这样的数组

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中创建多个列表(类似于带有子类别的类别列表等),我如何才能做到这一点?

类似这样的事情怎么样:

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

”,$object->name'

”; }
然后,您必须在CSS文件中定义类(level1、level2、level3…)

或者你可以用一些符号来表示缩进。像这样:

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

”;
如果您需要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>';
$lastLvl=1;
回声“
    ”; foreach($array作为$object){ 如果($object->lvl<$lastLvl){ 对于($i=1;$i lvl);$i++) 回声“
”; } 如果($object->lvl>$lastLvl){ 对于($i=1;$i lvl-$lastLvl);$i++) 回声“
    ”; } 回显“
  • ”,$object->name“
  • ”; $lastLvl=$object->lvl; }
    对于($i=1;$i请尝试一下,然后问问题。可能会有帮助。不过。你说的html中的多列表是什么意思?你是指下拉列表还是纯文本?更具体一点。ehh你不明白我想用子列表创建列表,比如1…2…3…4 5
,但我不知道如何解析列表som的数组看起来像什么