显示存储在数组中并循环的PHP菜单

显示存储在数组中并循环的PHP菜单,php,loops,if-statement,html-lists,Php,Loops,If Statement,Html Lists,我正在为一个非营利组织创建一个PHP网站。它们有一些限制(没有MySQL或预装CMS),所以我创建了一个CSS菜单,由无序列表显示,其中所有元素都存储在多维数组中 我已经让它开始工作了,但作为PHP新手,我确信它没有经过优化以尽可能平稳地运行。而且,我觉得我已经破解了第一个和最后一个元素 以下是阵列: <?php $siteURL = "http://www.mysite.org/"; $menu = array ( //"Name","URL",ID,Level,Seq,U

我正在为一个非营利组织创建一个PHP网站。它们有一些限制(没有MySQL或预装CMS),所以我创建了一个CSS菜单,由无序列表显示,其中所有元素都存储在多维数组中

我已经让它开始工作了,但作为PHP新手,我确信它没有经过优化以尽可能平稳地运行。而且,我觉得我已经破解了第一个和最后一个元素

以下是阵列:

<?php
$siteURL = "http://www.mysite.org/";

$menu = array
   (
   //"Name","URL",ID,Level,Seq,Under,Target,Display
   //First Menu
   array("TOP1",$siteURL."top1.php",1,1,1,0,0,true),
   array("SUB1a",$siteURL."sub1a.php",2,2,1,1,0,true),
   array("SUB1b",$siteURL."sub1b.php",3,2,2,1,0,true),
   array("SUB1c",$siteURL."sub1c.php",4,2,3,1,0,true),
   array("SUB1d","http://www.externalsite.org/",5,2,4,1,1,true),
   array("SUB1e","http://www.externalsite.org/",6,2,5,1,1,true),
   array("SUB1f",$siteURL."sub1f.php",7,2,6,1,0,true),

   //Second Menu
   array("TOP2",$siteURL."top2.php",8,1,2,0,0,true),
   array("SUB2a","http://www.externalsite.org/",9,2,1,8,1,true),
   array("SUB2b",$siteURL."sub2b.php",10,2,2,8,0,true),
   array("SUB2c","http://www.externalsite.org/",11,2,3,8,1,true),
   array("SUB2d","http://www.externalsite.org/",12,2,4,8,1,true),

   //Third Menu
   array("TOP3",$siteURL."top3.php",13,1,3,0,0,true),
   array("SUB3a","http://www.externalsite.org/",14,2,1,13,1,true),
   array("SUB3b","http://www.externalsite.org/",15,2,2,13,1,true),
   array("SUB3c","http://www.externalsite.org/",16,2,3,13,1,true),
   array("SUB3d","http://www.externalsite.org/",17,2,4,13,1,true),

   //Fourth Menu
   array("TOP4",$siteURL."top4.php",18,1,4,0,0,true),
   array("SUB4a",$siteURL."downloads/sub4a.pdf",19,2,1,18,0,true),
   array("SUB4b",$siteURL."sub4b.php",20,2,2,18,0,true),

   //Fifth Menu
   array("TOP5",$siteURL."top5.php",21,1,5,0,0,true),

   //Sixth Menu
   array("TOP6",$siteURL."top6.php",22,1,6,0,0,false),

   //Seventh Menu
   array("TOP7",$siteURL."top7.php",23,1,7,0,0,false),

   //Eighth Menu
   array("TOP8","http://www.externalsite.org/",24,1,8,0,1,true),

   );
?>

逻辑是这样的:

<ul>
<?php
$count = count($menu);
$i = 0;
while ($i < $count) {
    if (($menu[$i][3]===1) && ($menu[$i][7]===true)) {
        if ($menu[$i][6]===1) {
            echo "<li><a href=\"".$menu[$i][1]."\" target=\"_blank\">".$menu[$i][0]."</a><ul>\n";
        }
        else {
            echo "<li><a href=\"".$menu[$i][1]."\">".$menu[$i][0]."</a><ul>\n";
        }
        for ($j = 0; $j < $count; $j++){
            if (($menu[$j][5]===$menu[$i][2]) && ($menu[$j][7]===true)) {
                if ($menu[$j][6]===1) {
                    echo "<li><a href=\"".$menu[$j][1]."\" target=\"_blank\">".$menu[$j][0]."</a></li>\n";
                }
                else {
                    echo "<li><a href=\"".$menu[$j][1]."\">".$menu[$j][0]."</a></li>\n";
                }
            }
        }
        echo '</ul></li>';
    }
    $i++;
}
?>
</ul>

我很难找到一个相关的职位。我希望能得到一些帮助,甚至只是验证一下我做得是否正确。

我认为最好在网站上问这个问题。不过,不允许您使用数据库有点奇怪。他们有没有给你一个不这样做的理由?作为开发人员,您的工作就是解释使用数据库的好处。谢谢,Justin。我从未见过那个代码审查网站,但它看起来很有前途!我正在与一个使用共享服务器的组织打交道,该服务器在其子域下运行许多其他站点。我甚至不确定他们的IT团队是否知道如何安装/启用MySQL。