加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 从fetch Array创建无限的ul li标签(列表)

发布时间:2020-12-13 16:18:07 所属栏目:PHP教程 来源:网络整理
导读:我将创建一个无限列表使用我的数组PDO结果中的li和ul标签(取出) 我的阵列: Array ( [0] = Array ( [category_label] = catLevel4 [category_id] = 22 [category_owner] = 21 ) [1] = Array ( [category_label] = catLevel3 [category_id] = 21 [category_ow
我将创建一个无限列表使用我的数组PDO结果中的li和ul标签(取出)

我的阵列:

Array ( 
 [0] => Array ( [category_label] => catLevel4 [category_id] => 22 [category_owner] => 21 ) 
 [1] => Array ( [category_label] => catLevel3 [category_id] => 21 [category_owner] => 20 ) 
 [2] => Array ( [category_label] => catLevel2 [category_id] => 23 [category_owner] => 8 ) 
 [3] => Array ( [category_label] => catLevel2 [category_id] => 24 [category_owner] => 8 ) 
 [4] => Array ( [category_label] => catLevel2 [category_id] => 20 [category_owner] => 6 ) 
 [5] => Array ( [category_label] => catLevel1 [category_id] => 6 [category_owner] => 0 ) 
 [6] => Array ( [category_label] => catLevel1 [category_id] => 7 [category_owner] => 0 ) 
 [7] => Array ( [category_label] => catLevel1 [category_id] => 8 [category_owner] => 0 )
 )

我想要 :

catLevel1
 catLevel2
  catLevel3
   catLevel4
catLevel1
catLevel1
 catLevel2
 catLevel2

我做了转换功能:

function getCategory($parentCategoryId,$data)
{
    foreach($data as $row){if($row['category_owner']==$parentCategoryId){?>
    <li catId='<?php echo $row['category_id']?>'><a><?php echo $row['category_label'];?></a>
            <ul> 
            <?php getCategory($row['category_id'],$data) ;?>
            </ul>
    </li>
    <?php };}
}

echo getCategory(0,$this->categorysList);

这个函数非常适合我,但是创建null< ul>< / ul>对于所有项目!

感谢您帮助建立标准功能; D.

解决方法

你得到null< ul>标签,因为您在没有任何检查的情况下对其进行硬编码,并在每次迭代中输出.尝试这样的事情:

<?php

function getCategory($parentCategoryId,$data) {
    foreach ($data as $row) {
        if ($row['category_owner'] == $parentCategoryId) {
            $str .= '
<li catId="' . $row['category_id'] . '"><a>' . $row['category_label'] . '</a>' . "n";
            $res = getCategory($row['category_id'],$data);
            if ($res) {
                $str .= '
    <ul>' . $res . '</ul>
    ' . "n";
            }
            $str .= '
</li>' . "n";
        }
    }
    return $str;
}

$str = getCategory(0,$data);
echo $str;

?>

所以你得到这样的输出:

<li catId="6">
    <a> catLevel1</a>
    <ul>
        <li catId="20">
            <a> catLevel2</a>
            <ul>
                <li catId="21">
                    <a> catLevel3</a>
                    <ul>
                        <li catId="22">
                            <a> catLevel4</a>
                        </li>
                    </ul>
                </li>
            </ul>
        </li>
    </ul>
</li>
<li catId="7">
    <a> catLevel1</a>
</li>
<li catId="8">
    <a> catLevel1</a>
    <ul>
        <li catId="23">
            <a> catLevel2</a>
        </li>
        <li catId="24">
            <a> catLevel2</a>
        </li>
    </ul>
</li>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读