【问题标题】:foreach first element add a classforeach 第一个元素添加一个类
【发布时间】:2014-03-21 00:30:05
【问题描述】:

图片文件夹有3个文件

<img src='images/AAA_1.jpg'>
<img src='images/AAA_2.jpg'>
<img src='images/AAA_3.jpg'>
<img src='images/BBB_1.jpg'>
<img src='images/BBB_2.jpg'>
<img src='images/BBB_3.jpg'>
<img src='images/CCC_3.jpg'>

PHP 是

    foreach ($carousel as $image) {
        if(strpos($image, 'AAA_') === 0){
          echo "<div class='box'><img src='images/carousel/$image'/></div>";
       }
    }

所以输出是

<div class='box'>
   <img src='images/AAA_1.jpg'>
</div>
<div class='box'>
   <img src='images/AAA_2.jpg'>
</div>
<div class='box'>
   <img src='images/AAA_3.jpg'>
</div>

如何在拳头框上添加first 类,看起来像

<div class='box first'>
   <img src='images/AAA_1.jpg'>
</div>
<div class='box'>
   <img src='images/AAA_2.jpg'>
</div>
<div class='box'>
   <img src='images/AAA_3.jpg'>
</div>

【问题讨论】:

  • 您希望它仅出现在完整文件列表的第一个条目上吗?或更改文件名组?即 AAA_3 到 BBB_1。并且仅当组中有超过 1 个文件?只是好奇。
  • @RyanVincent 谢谢!是的,你明白了!我刚刚发现我需要每组第一个。所以如果我过滤所有图像 AAA_1.jpg、BBB_1.jpg 和 CCC_1.jpg 需要插入 frist
  • 这使它“有趣”:-)。可以修改提供的答案以执行您想要的操作。我建议您修改您的问题以准确显示您想要输出的内容。这对我们帮助很大。
  • 您需要开始一个新的问题,因为您已经接受了答案,并且奖励已经给予给出您接受的答案的人。您不必接受不符合您要求的答案。尽管您需要尝试并要求您想要什么。这可能很困难。

标签: php


【解决方案1】:

使用密钥:

foreach ($carousel as $key=>$image) {
    $first = $key == 0 ? ' first' : '';
    if(strpos($image,'AAA_') === 0){

        echo <<<EOD

        <div class='box{$first}'>
           <img src='images/carousel/{$image}.jpg'>
        </div>

EOD;

    }
}

注意:我使用heredoc 语句作为回显,因为我更喜欢在多行上回显多个 HTML 标记。

【讨论】:

  • 我打算评论一下使用“php 替代语法”作为 PHP 代码块中多行 html 布局的另一种方法。想一想,我更喜欢你使用 'heredoc
【解决方案2】:

简单:使用标志。

$firstEchoed = FALSE;
foreach ($carousel as $image) {
    if(strpos($image,'AAA_') === 0){
      echo "<div class='box";
      if ( ! $firstEchoed)
        echo " first";

      echo "'><img src='images/carousel/$image'/></div>";
      $firstEchoed = TRUE;
   }
}

【讨论】:

  • 感谢您的回答 :-)
【解决方案3】:

您可以使用布尔标志,或将计数参数添加到 foreach

foreach ($carousel as $i => $image)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-23
    • 2017-03-13
    • 2021-08-30
    • 2011-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多