回声

2016-02-26 101 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; ?>