2016-05-18 11 views
0

homedirにあるすべてのディレクトリを含む配列があります。私は私のドロップダウンメニューに "</ul>"を出力する必要があるforeachループを実行しています。親ディレクトリの最後のサブディレクトリの末尾、または改行がある場所に終了タグを出力する必要があります。 (私は配列を以下のスペースでグループ化しました)

私はこの問題に論理的にどのようにアプローチするのか分かりません。再帰関数が助けになるかもしれないかもしれないが、どこから始めるべきかわからないかもしれない。

Array ([0] => Array ([0] => test_php [1] => test_php) 

     [1] => Array ([0] => bootstrap-336-dist [1] => bootstrap-3.3.6-dist) 
     [2] => Array ([0] => .css [1] => bootstrap-3.3.6-dist/css) 
     [3] => Array ([0] => .fonts [1] => bootstrap-3.3.6-dist/fonts) 
     [4] => Array ([0] => .js [1] => bootstrap-3.3.6-dist/js) 

     [5] => Array ([0] => dynasty_loop [1] => dynasty_loop) 
     [6] => Array ([0] => .C1_00626E58960C [1] => dynasty_loop/C1_00626E58960C) 
     [7] => Array ([0] => ..snap [1] => dynasty_loop/C1_00626E58960C/snap) 
     [8] => Array ([0] => .C1_00626E5894EF [1] => dynasty_loop/C1_00626E5894EF) 
     [9] => Array ([0] => ..snap [1] => dynasty_loop/C1_00626E5894EF/snap) 

     [10] => Array ([0] => nvr_snapshots [1] => nvr_snapshots) 
     [11] => Array ([0] => .snap [1] => nvr_snapshots/snap) 

     [12] => Array ([0] => test_php2 [1] => test_php2)) 
+0

ここにあなたのコードを入れてもいいですか? –

+0

'//自分自身の関数 関数in_array_r($ needle、$ haystack、$ strict = false){ foreach($ haystack $ item){ if(($ strict?$ item === $ needle:$ item == $ needle)||(is_array($ item)&& in_array_r($ needle、$ item、$ strict))){ trueを返します。 } } falseを返します。 } ' これはこれまで私が持っていたものですが、私は迷っています。 – NewbTechGuy

答えて

0

私はそれを理解しました。誰かが似たようなものを探しているなら、私の答えはここにあります。私のforeachループ構文は閉鎖されていないので注意してください。

foreach($_SESSION['menulite'] as $key => $url) { 
     $url_raw = $url; 
     $key_raw = $key; 

     $url[0]=trim($url[0],'.'); 

     $nextmenuitem = $_SESSION['menulite'][$key + 1]; 


      //if (substr($nextmenuitem[0],0,1)=='.') { 
       $padding_left=''; 
       $padding_left = (substr_count($nextmenuitem[0], '.', 0, strpos($nextmenuitem[0], trim($nextmenuitem[0], '.'))) -1); 


       if (strpos($url_raw[0],'.') !== 0 && strpos($nextmenuitem[0],'.') !== 0) { 

       $div1 = "<li role=\"presentation\">" ; 
       $div2 = "</li>"; 
        } 

       if (strpos($url_raw[0],'.') !== 0 && strpos($nextmenuitem[0],'.') === 0) { 
       $div1 = "<li role=\"presentation\" $class1> <a$dropdown> $url_raw[0] $caret </a> <ul class=\"dropdown-menu\">" ; 
       $div2 = null; 
       } 

       if (strpos($url_raw[0],'.') === 0 && strpos($nextmenuitem[0],'.') === 0) { 
       $div1 = "<li>" ; 
       $div2 = "</li>"; 

       } 

       if (strpos($url_raw[0],'.') === 0 && strpos($nextmenuitem[0],'.') !== 0) { 
        $div1 = "<li>" ; 
        $div2 = "</li>"; 
        //echo "</ul>"; 


        }