我正在创建一个动态菜单系统,但是我遇到了一个小问题。我有一个输入方法,允许创建主菜单项和子菜单,然后当PHP收到数组时,我从中构建一组对象。
但是,为了正确填充菜单,我需要获取对象列表并创建一个正确排序的列表,包含主对象和子对象。每个对象都有一个它所属的父ID和ID。如果它属于零,则为最高级别。
$CountFields = count($_POST["URLLabel"]);
$MenuObjectArray = [];
for ($i = 0; $i < $CountFields; $i++)
{
$obj = new stdClass();
$obj->URL_ID = $_POST["URL_ID"][$i];
$obj->URLLabel = $_POST["URLLabel"][$i];
$obj->URLLink = $_POST["URLLink"][$i];
$obj->URLParent = $_POST["URLParent"][$i];
array_push($MenuObjectArray, $obj);
}
将此数组对象输出到ul / li列表中的最佳方法是什么?将子菜单从主要级别考虑在内?
答案 0 :(得分:0)
使用foreach迭代对象数组。
foreach($MenuObjectArray as $obj)
{
echo '<li>'.$obj->URL_ID.'</li>'
}
答案 1 :(得分:0)
尝试使用foreach循环:
<?php
foreach($MenuObjectArray as $obj) {
?>
<ul>
<li><?php echo $obj->URL_ID?></li>
<li><?php echo $obj->URLLabel ?></li>
<li><?php echo $obj->URLLink ?></li>
<li><?php echo $obj->URLParent ?></li>
</ul>
<?php
}
?>
答案 2 :(得分:0)
我决定不再幻想并建立一个临时的SQL数据库,以及一个常规的单一菜单输入字段,而不是一个完整的动态表。这将使整个过程变得更加容易,至少现在,我可以将存储转换为最终类型。特征是最好的。