-1

md配列を使用してメニューを作成しましたが、サブメニュー項目を正しく印刷するのに問題があります。

これを使用してメニューを作成します。

class Language {

public $langCode ;

function __construct($code)
{
    $this->langCode = $code ;
}

public function navigation()
{
    if($this->langCode == 'en')
    {
        $menu = array(
                      array('Home', ''),
                      array('Galleries', '',
                            array('Top ten hottest' => 'hottest.php'),
                            array('Top ten worst' => 'hottest.php'),
                           ),
                      array('Upload', 'upload.php'),
                      array('Login/register', ''),
                      array('Resources', '', 
                            array('News' => ''),
                            array('What\'s a mound?' => ''),
                            array('Legal' => ''),
                            array('Links' => ''),
                           ),
                      array('abc?', ''),
                     ) ;
    }
    return $menu ;
}

}

そして、私は以下を使用してメニューを作成しようとしています:

$mainMenu = $lng->navigation() ;

echo "<ul>\n" ;
foreach($mainMenu as $set) {
    $x = 0 ;
    echo "<li><a href='".$set[1]."'>".$set[0]."</a></li>\n" ;
    if($set[2])
    {
        foreach($set[2] as $label => $item) {
            echo $item ;
        }
    }
}

しかし、私が得ているのは、foreachループのサブメニューの最初の項目だけです。これは、$ set [2] [0]を実行することで直接アクセスできるため(キーを値に割り当てる前に)、意味がありません。アレイ)。

必要な出力を取得するには、何をする必要がありますか?

4

1 に答える 1

0

set[2]を配列にするのを忘れています。現在、set[2]とset[3]があり、set[4]とset[5]のリソースも次のようになっています。

$menu = array(
                  array('Home', ''),
                  array('Galleries', '', array(
                        array('Top ten hottest' => 'hottest.php'),
                        array('Top ten worst' => 'hottest.php'),
                       )),
                  array('Upload', 'upload.php'),
                  array('Login/register', ''),
                  array('Resources', '', array(
                        array('News' => ''),
                        array('What\'s a mound?' => ''),
                        array('Legal' => ''),
                        array('Links' => ''),
                       )),
                  array('abc?', ''),
                 ) ;
于 2012-10-18T17:43:08.847 に答える