【问题标题】:PHP foreach loop x times and add placeholderPHP foreach 循环 x 次并添加占位符
【发布时间】:2012-04-26 14:50:37
【问题描述】:

我正在使用 foreach 循环遍历图像。最多有四个图像,最少有 1 个图像。 例如,如果有两个图像(= 两个循环),我想告诉 foreach 他需要再次循环两次并回显一些占位符图片。

这是我的 foreach:

<?php foreach($users as $k => $v) {?>
<img src="/images/user_<?php echo $k; ?>.jpg" alt="" title="" />
<?php } ?>

输出(两个循环):

<img src="/images/user_0.jpg" alt="" title="" />
<img src="/images/user_1.jpg" alt="" title="" />

但新脚本应该输出:

<img src="/images/user_0.jpg" alt="" title="" />
<img src="/images/user_1.jpg" alt="" title="" />
<img src="/images/user_placeholder.jpg" alt="" title="" />
<img src="/images/user_placeholder.jpg" alt="" title="" />

不要忘记 $users 可能有 x 个条目 (0-4)

【问题讨论】:

  • 所以您希望将 x 个用户图像输出到浏览器,并在它们之后立即输出 x 个占位符(到目前为止都相同)?

标签: php loops foreach


【解决方案1】:

使用array_fill 用所需数量的项目填充数组(因为它们都将是相同的),然后将它们打印出来。

<?php foreach($users as $k => $v) {?>
<img src="/images/user_<?php echo $k; ?>.jpg" alt="" title="" />
<?php } ?>

<?php
echo implode('', array_fill(0, count($users), 'placeholder image HTML'));

当然,您也可以使用另一个 foreach 来代替这种可爱,它在每次迭代中打印 placeholder image HTML

更新:原来还有更好的方法:

echo str_repeat('placeholder image HTML', count($users));

PHP 确实有很多太多功能要记住。 :)

【讨论】:

  • 感谢这个可爱的解决方案 :) accept ...编辑:两者都有效。而且我喜欢单线解决方案,所以我很高兴
【解决方案2】:

使用计数器...

<?php
$counter = 0; 
foreach($users as $k => $v) {?> 
    <img src="/images/user_<?php echo $k; ?>.jpg" alt="" title="" />
<?php $counter++;  
} 
while{$counter < 4)
{?>
    <img src="/images/user_placeholder.jpg" alt="" title="" />
<?php } ?>

【讨论】:

    【解决方案3】:

    这应该可以工作

    $count = 1;
    foreach($users as $k => $v) {
    ?>
        <img src="/images/user_<?php echo $k; ?>.jpg" alt="" title="" />
    <?php 
        $count++;
    } 
    
    for ($i = $count; $i <= 4; $i++) {
    ?>
        <img src="/images/user_placeholder.jpg" alt="" title="" />
    <?php 
    }  
    ?>
    

    【讨论】:

      【解决方案4】:
      <?php 
      $placeholders = array();
      foreach($users as $k => $v) {?>
          <img src="/images/user_<?php echo $k; ?>.jpg" alt="" title="" />
          <?php 
          $placeholders[] = '<img src="/images/user_placeholder.jpg" alt="" title="" />';
      } 
      foreach ($placeholders as $placeholder){
          echo $placeholder;
      } ?>
      

      如您所见,有十几种方法可以给这只猫剥皮。

      【讨论】:

        猜你喜欢
        • 2014-07-27
        • 1970-01-01
        • 2011-06-01
        • 2012-02-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-03
        • 1970-01-01
        相关资源
        最近更新 更多