2013-03-18 2 views
0

조직 트리를 표시하는 페이지가 있지만 레벨 2에는 반복되는 항목이 있습니다.레벨 2의 반복 항목

<ul id="org" style="display: none;"> 
<li>Brit School       
    <ul> 
     <li>Amy Winehouse 
      <ul> 
       <li>Carina Round</li> 
      </ul> 
     </li> 
     <li>Adele Adkins 
      <ul> 
       <li>Kreayshawn K</li> 
       <li>Leona Lewis</li> 
      </ul> 
     </li> 
     <li>Adele Adkins 
      <ul> 
       <li>Kreayshawn K</li> 
       <li>Leona Lewis</li> 
      </ul> 
     <li>Arctic Monkey 
      <ul> 
       <li>PJ Harvey</li> 
      </ul> 
     </li> 
    </ul> 

</li> 

내가이

PHP에서 내 예제 코드 2 기록 아델를 생략하고 싶었 : 내가 원한 것은 여기

는 예를 들어 디스플레이의 ... 중복을 방지하는 것입니다 내가 바른 길 나는 단지 w에 향하고 경우
<ul id="org" style="display: none;"> 
<?php foreach ($lvl1 as $genesA) {?> 
    <li> 
     <?php echo $genesA->LevelFullName1?> 
     <?php if($genesA->lvlMemF) {?> 
     <ul> 
     <?php if($genesA->lvlMemF) {?> 
      <?php foreach ($lvl2 as $genesB) {?> 
       <?php if($genesB->lvlMemS) {?> 
       <li><?php echo $genesB->LevelFullName2 ?> 
       <?php if($genesB->lvlMemS) {?> 
        <ul> 
        <?php if($genesB->lvlMemS) {?> 
         <?php foreach ($lvl3 as $genesC) {?> 
          <?php if($genesB->lvlMemS == $genesC->referrerLvl3) {?> 
           <li> 
            <?php echo $genesC->LevelFullName3?> 
           </li> 
          <?php } ?> 
         <?php } ?> 
        <?php } ?> 
        </ul> 
        <?php } ?> 
       </li> 
       <?php } else { ?> 

       <?php } ?> 
      <?php } ?> 
     <?php } ?> 
     </ul> 

     <?php }?> 
    </li> 
<?php } ?> 

나는 이렇게 확실하지 않다 의 더러운 수정 개미 모든 :)

답변

1

을 수행해야한다 :

<?php 
$seen = array(); 
?> 
<ul id="org" style="display: none;"> 
<?php foreach ($lvl1 as $genesA) {?> 
    <li> 
     <?php echo $genesA->LevelFullName1?> 
     <?php if($genesA->lvlMemF) {?> 
     <ul> 
     <?php if($genesA->lvlMemF) {?> 
      <?php foreach ($lvl2 as $genesB) {?> 
       <?php if($genesB->lvlMemS) {?> 
       <li><?php echo $genesB->LevelFullName2 ?> 
       <?php if($genesB->lvlMemS) {?> 
        <ul> 
        <?php if($genesB->lvlMemS) {?> 
         <?php foreach ($lvl3 as $genesC) {?> 
          <?php if($genesB->lvlMemS == $genesC->referrerLvl3) {?> 
           <?php if(!in_array($genesC->LevelFullName3, $seen)?> 
           <li> 
            <?php echo $genesC->LevelFullName3?> 
            <?php $seen[] =$genesC->LevelFullName3;?> 
           </li> 
           <?php }?> 
          <?php } ?> 
         <?php } ?> 
        <?php } ?> 
        </ul> 
        <?php } ?> 
       </li> 
       <?php } else { ?> 

       <?php } ?> 
      <?php } ?> 
     <?php } ?> 
     </ul> 

     <?php }?> 
    </li> 
</ul> 

당신은 확인 할 수 있습니다 경우 내 당신이 모든 경우 빈 ul 블록을 얻을 수 있기 때문에 거기에 적절한 장소에있는 경우 이름은 이미 보였다.

+0

동일한 출력. . –

+0

오, 내가 오류를 만들었습니다, 지금 작동해야합니다 – ITroubs

+0

그것은 여전히 ​​나에게 동일한 출력을 제공합니다 hmmmmm. –