回聲

2016-02-26 55 views
0

我有以下的foreach循環:回聲

<?php if(!empty($strategy->assisting)):?> 
    <ul class="needs-padding"> 
     <?php foreach($strategy->assisting as $asst): ?> 
      <li><?= $asst->full_name; ?></li> 
     <?php endforeach; ?> 
     </ul> 
<?php endif; ?> 

而不是僅僅裏的內吐出所有的$助理,我需要呼應「多」如果有不止一個(在顯示之後出現的列表之後,我可以用js隱藏/顯示它),或者如果只有一個實例,則回顯$ as。

我試過這個,但它顯然是錯誤的,因爲它只是爲$ asst的每個實例打印出'multiple'。

    <?php if(!empty($strategy->assisting)):?> 
         <ul class="needs-padding assisting-members"> 
          <?php $count = 0; ?> 
          <?php foreach($strategy->assisting as $asst): ?> 
           <?php $count ++; ?> 
           <?php if($count > 1){ 
            echo '<a href="#">Multiple</a>'; 
            // echo '<li>' . $asst->full_name . '</li>'; 
           } else { 
            echo '<li>' . $asst->full_name . '</li>'; 
           } ?> 
          <?php endforeach; ?> 
         </ul> 
        <?php endif; ?> 
+0

爲什麼不只是'如果(計數($策略 - >幫助)> 1) '做foreach循環?否則回顯'$ strategy->輔助[0] - > full_name'到列表中。 – frz3993

+0

你厭倦瞭如果($ count> 1){'foreach之外? –

回答

1

更改您的代碼如下所示:

<?php if(!empty($strategy->assisting)):?> 
    <?php $count = count($strategy->assisting); ?> 
    <ul class="needs-padding"> 
     <?php foreach($strategy->assisting as $k => $asst): ?> 
      <?php if ($count > 1 && $k == 0) echo '<a href="#">Multiple</a>'; ?> 
      <li <?php if ($count > 1) echo "style='display:none;'"; ?>><?= $asst->full_name; ?></li> 
     <?php endforeach; ?> 
     </ul> 
<?php endif; ?> 
0

由於$strategy->assisting是一個數組,你應該能夠使用count($strategy->assisting)代替$count變量。喜歡的東西:(編輯僅打印 「多」 一次)

   <?php if(!empty($strategy->assisting)):?> 
        <ul class="needs-padding assisting-members"> 
         <?php printedMultiple = false; ?> 
         <?php foreach($strategy->assisting as $asst): ?> 
          <?php if(count($strategy->assisting) > 1 and !printedMultiple){ 
           echo '<a href="#">Multiple</a>'; 
           printedMultiple = true; 
           // echo '<li>' . $asst->full_name . '</li>'; 
          } elseif (!printedMultiple) { 
           echo '<li>' . $asst->full_name . '</li>'; 
          } ?> 
         <?php endforeach; ?> 
        </ul> 
       <?php endif; ?>